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 -
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 ;-)
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 ;-)
A voir également:
- MySQL : séparer les tables ? (quelle rapidité
- Mysql community server - Télécharger - Bases de données
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Access vs mysql - Forum Webmastering
2 réponses
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.
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.
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 !
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 !