|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Marc Ingénieur sécurité Inscription : novembre 2009 Messages : 142 ![]() |
Bonjour,
Je dois réaliser une base de données, qui va stocker des préférences utilisateurs. J'aimerais connaitre votre avis concernant l'optimisation de ma base de données. Voici la donnée : - Chaque utilisateur a des données qu'il a remplit, ces données sont liées à une autre table. - Puis chaque utilisateur va comparer ses résultats avec chacun des utilisateurs. J'ai donc deux solutions : - Créer une table par utilisateur ou - Créer une table avec tous les utilisateurs J'aimerais savoir quelle est la meilleur solution, la première me parait plus optimisée, mais plus dure à modifier. merci de votre aide |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() ![]() Axel GodinDéveloppeur .NET Inscription : mars 2011 Messages : 38 ![]() |
Bonjour,
Je pense que le plus simple est d'avoir une table Utilisateurs et une table Préférence. La table Utilisateurs possederait en clé étrangère l'id de Préférence. |
|
00
|
|
|
#3 |
|
Membre habitué
![]() Marc Ingénieur sécurité Inscription : novembre 2009 Messages : 142 ![]() |
Merci de ta réponse, cependant je pense avoir mal présenté la question. Voici la donné mieux présentée :
- Plusieurs milliers d'utilisateurs - Une table de donnée de quelques milliers d'entrées - Chaque utilisateur va évaluer chacune des entréees Je vois deux solutions, voici la première : Trois tables - La première contient les données - La seconde possède les données utilisateurs - La troisième contient les préférences de chaque utilisateur avec des clés étrangères vers les données et les users La deuxième solution : - Une table données - Une tables données utilisateurs - Une table par utilisateur avec les préférences de chaque donnée Je vois les différences suivantes : - Avec la première version, j'ai des tables plus grande consommant plus de ressources pour les recherches. - Avec la seconde j'ai plus de tables Quel est votre avis ? Dois-je faire attention au nombre de table ? Il y a t-il une différence sensible de performance entre les deux solutions ? Merci de votre aide |
|
|
00
|
|
|
#4 | |
|
Membre actif
![]() |
Bonsoir,
Citation:
ce n'est absolument pas la meilleure solutions ça se voit, et c'est même inutile, quand t'aura besoin de faire des requêtes pour trouver des informations sur telle ou telle utilisateur par rapport aux autres utilisateurs, tu ne vas pas les chercher n'importe où sur ta base de données ![]() Je pense plutôt à une liaison entre table utilisateur et table préférences de type 0-N , 0-N c'est à dire un utilisateur peut avoir choisi de 0 à N préférences, et pour chaque préférence ça peut exister chez 0 à N utilisateur, ce qui me parait le plus logique, ce qui doit générer une troisième table intermédiaire entre utilisateurs et préférences, une table qu'on pourra appelé préférences_utilisateur. Après pour optimiser les recherches entre ces deux tables, je suggère de mettre des indexes sur les Id préférences et Id utilisateurs, là où il convient selon les requêtes habituelles et quand le nombre d'enregistrement est important. +
__________________
You probably have a very easy job, the kind robots will be doing soon. |
|
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Marc Ingénieur sécurité Inscription : novembre 2009 Messages : 142 ![]() |
Merci pour ta réponse,
je vais passer par une table intermédiaire et faire des relations 0-n n-0
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com