[ORACLE] clés étrangeres de differentes tabls
Résolu
kismetgram
Messages postés
9
Statut
Membre
-
nanci -
nanci -
Bonjour,
construisant actuellement une base de données sur les joueurs de tennis je m'interroge sur le fait que je doive créer ou non plusieurs tables intermédiares voici le pb jai une table joueur(id_joueur, nom_joueur , caractéristique , ...) et court( id_court, nom, type surface ... ) et une troisieme pays(id_pays, nom_pays, nationalité)
j'aimerais savoir si je dois impétaivement créer 2 tables intermédiares : reside (id_joueur, id_pays) et se_situe (id_court, id_pays)
ou s'il y a une autre maniere de faire en incluant directement id_pays ans les tables joueur et court
merci d'avance sur les précisions que vous pourrez m'apporter
construisant actuellement une base de données sur les joueurs de tennis je m'interroge sur le fait que je doive créer ou non plusieurs tables intermédiares voici le pb jai une table joueur(id_joueur, nom_joueur , caractéristique , ...) et court( id_court, nom, type surface ... ) et une troisieme pays(id_pays, nom_pays, nationalité)
j'aimerais savoir si je dois impétaivement créer 2 tables intermédiares : reside (id_joueur, id_pays) et se_situe (id_court, id_pays)
ou s'il y a une autre maniere de faire en incluant directement id_pays ans les tables joueur et court
merci d'avance sur les précisions que vous pourrez m'apporter
Configuration: Windows XP Firefox 2.0.0.11
7 réponses
-
-
vu qu'un court ne peut être que dans un seul pays, tu peux inclure une clé étrangère vers un pays dans ta table listant les cours.
de même pour les joueurs.
par contre, un joueur peut jouer sur plusieurs cours différents et un cours peut recevoir plusieurs joueurs. pour celà, il ta faut une table de liaison entre les cours et le joueur, pour pouvoir faire apparaitre plusieurs vois un joueur sur la liste des scours et plusieurs fois un cours sur la liste des joueurs. ça te permet également de garder un historique de quel joueur a joué sur quel cours. alors que tes tables cours et joueurs sont des photos prises à l'instant t
enfin, c'est comme ça que je vois les choses
au final, tout dépend de ce que tu veux faire -
alors si j'ai bien compris votr forme relationnelle devient
cours( id_court, nom, pays,type surface ... )
joueur(id_joueur, nom_joueur , nationnalité,caractéristique , ...) et court
se-faire(id_court,id_joueur,date)
vous n'etes pas besoin de créer la table pays -
si, on peut créer une table pays, pour mettre une clé étrangère vers elle dans les tables joueur et cours, afin de pouvoir spécifier dans quel pays se trouve le cours et de quelle nationalité est le joueur.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
et b1 tu ajoute le champ pays dans la table cours et le champ nationnalité dans la table joueur comme j'ai vous y indiqué ttal'heur
-
sauf que si tu veux une description complète de ton pays, tu n'optimisera pas l'espace de stockage en faisant comme tu fais. la construction que je te propose te permet d'avoir toutes les infos sur la pays, qu'il soit relié au cours ou au joueur, en minimisant l'espace de stockage.
-
ok donc c est comme vous avez fait mais en ajouttant
se-faire(id_court,id_joueur,id_pays,date)
pour sauver l'historique