Précédent   Forum des professionnels en informatique > Général Développement > Conception > Modélisation
Modélisation Forum d'entraide pour les diagrammes UML et les MCD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2011, 03h28   #1
Membre habitué
 
Marc
Ingénieur sécurité
Inscription : novembre 2009
Messages : 142
Détails du profil
Informations personnelles :
Nom : Marc

Informations professionnelles :
Activité : Ingénieur sécurité

Informations forums :
Inscription : novembre 2009
Messages : 142
Points : 129
Points : 129
Par défaut Conseil de conception

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
manticore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 07h33   #2
Membre régulier
 
Homme Axel Godin
Développeur .NET
Inscription : mars 2011
Messages : 38
Détails du profil
Informations personnelles :
Nom : Homme Axel Godin
Âge : 25
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mars 2011
Messages : 38
Points : 78
Points : 78
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.
Ginetteguy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 01h06   #3
Membre habitué
 
Marc
Ingénieur sécurité
Inscription : novembre 2009
Messages : 142
Détails du profil
Informations personnelles :
Nom : Marc

Informations professionnelles :
Activité : Ingénieur sécurité

Informations forums :
Inscription : novembre 2009
Messages : 142
Points : 129
Points : 129
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
manticore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 01h26   #4
Membre actif
 
Avatar de witch
 
Mina Essabbeur
Inscription : mai 2007
Messages : 342
Détails du profil
Informations personnelles :
Nom : Mina Essabbeur
Âge : 25

Informations forums :
Inscription : mai 2007
Messages : 342
Points : 177
Points : 177
Envoyer un message via MSN à witch
Bonsoir,

Citation:
Envoyé par manticore Voir le message
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 par utilisateur avec les préférences de chaque donnée
ce qui veut dire Plusieurs miliers de tables
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.
witch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 01h56   #5
Membre habitué
 
Marc
Ingénieur sécurité
Inscription : novembre 2009
Messages : 142
Détails du profil
Informations personnelles :
Nom : Marc

Informations professionnelles :
Activité : Ingénieur sécurité

Informations forums :
Inscription : novembre 2009
Messages : 142
Points : 129
Points : 129
Merci pour ta réponse,

je vais passer par une table intermédiaire et faire des relations 0-n n-0
manticore est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h03.


 
 
 
 
Partenaires

Hébergement Web