MySQL : séparer les tables ? (quelle rapidité

Résolu
Liteulbob Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   -  
Liteulbob Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde ;-)

J'ai une petite question sur le choix de création de tables de données.
Déjà, d'un point de vue général, vaut il mieux regrouper les infos liées dans une meme table, ou en faire plusieurs petites (qui oblige donc à faire plusieurs appels...).

Dans mon cas précis :
j'ai une table de membres, avec de nombreuses infos (loisirs, tite bio, photo etc), et j'aimerais proposer à ces membres d'enregistrer leurs choix persos d'affichage d'évènement.
Typiquement, ils auront un calendrier personnel dans lequel n'apparaitront que les évènements qu'ils ont choisi d'enregistrer.

Alors pour ce cas, vaut il mieux rajouter un champ texte "choix d'evenements" a la table membre, dans laquelle seront stockées les id de ces évènements (par ex : 128,98,5,654...), ou bien créer une autre table "evenements enregistrés" avec l'id de l'utilisateur et l'id d'un évènement et créer une nouvelle entrée à chaque fois qu'un évènement est enregistré comme personnel ?

Ou alors une autre solution serait meilleure encore ?
Et donc bref dans le cas général : vaut il mieux séparer les données dans des tables différentes suivant leur utilisation finale, ou les regrouper ?

Merci d'avance ;-)

2 réponses

croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
Bonjour,

Sans hésiter, il faut créer une table séparée avec id utilisateur et id événement.

Si de plus un événement peut correspondre à plusieurs utilisateurs, il faudra créer trois tavles :
- la table des utilisateurs (idUtilisateur, nom, prenom...)
- la table des événements (idEvt, date, titre, lieu...)
- la table des correspondances (idEvt, idUtilisateur)

Même si cette structure peut s'avérer plus coûteuse en temps machine dans certains cas il faut l'adopter pour les raisons suivantes :
- la facilité d'interrogation
- la suppression de contraintes structurelles (du genre nbre maxi d'utilisateur par evt)
- c'est dans la doite ligne de la philosophie du relationel

De plus, le surcoût éventuel sera très négligeable.
0
Liteulbob Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup pour la réponse, surtout pour le coup des tables ...

Arf oui je suis vraiment bête j'avais vu en plus cette idée des trois tables dans un autre langage de programmation, et si je l'avais appliquée pour mes autres pages ça aurait été beaucoup plus simple !

Bon je vais faire ça alors, c'est jamais trop tard pour corriger :-p

Merci encore !
0