-
Structure des tables
Bonjour,
J'aimerais savoir quel est la meilleure solution pour faire ceci :
- une table : joueurs
- un autre : équipe
Je ne sais pas comment faire pour dire que tel joueur appartient a tel equipe.
- Soit je met un champ dans joueur : equipe_id
Dans ce cas il faudra rechercher tout les joueur pour trouver l'equipe complete.
- Soit je met un champ dans equipe : joueurs qui contiendra les id des joueur séparé d'une virgule (ou autre chose)
Dans ce cas la on aura déja tout les joueurs mais il faut eclater la chaine pour les avoir séparement.
Voyez vous une autre solution ou si ce n'est pas le cas me dire laquel serait la plus économique en temps et ressource.
Yoshio.
-
Salut
La première solution est bien sur la meilleure de loin !
Petit exemple
table joueur :
j_id : id du joueur
j_eid : id de son équipe
j_nom : nom du joueur
table equipe :
e_id : id de l'équipe
e_nom : nom de l'équipe
Pour récupérer tous les joueurs de l'équipe 5 :
SELECT j_id, j_nom FROM joueur WHERE j_eid = 5
Pour récupérer l'équipe du joueur 12 :
SELECT e_id, e_nom FROM joueur JOIN equipe ON e_id = j_eid WHERE j_id = 12
-
Ca ne posera pas de probleme si la table contient un nombre important de joueur ?!
-
Salut,
La première solution est normalisée et donc la plus propre.
Concernant les performances, si il y a un index sur la colonne "idEquipe" de la table Joueur, il n'y a pas à s'en faire pour les requêtes de type :
Code:
SELECT idJoueur, nomJoueur FROM joueur WHERE idEquipe = X
Et pour l'espace disque, elle est également meilleure que des id transformés en ASCII puis concaténés avec un séparateur.
-
Oki merci je vais garder la premier solution, c'est aussi la plus simple !