Partage
  • Partager sur Facebook
  • Partager sur Twitter

Clé étrangère

29 novembre 2020 à 17:39:13

Bonjour, j'ai une base de données tennis dans la quel je dois énoncer les éventuelles clés étrangères et si il y'a des optimisations réalisables sur les clés étrangères (en rouge les clés primaires).

Déjà, j'ai trouvé que NomSponsor était une clé étrangère de SPONSOR, NomJoueur,NomGagnant,NomPerdant clé étrangère de JOUEUR, je ne suis pas sûr de mes résultats et je ne sais pas si il manque des clés.

JOUEUR (Nom, Prénom, AnnéeNaissance, Nationalité)

RENCONTRE (NomGagnant, NomPerdant, LieuTournoi, Date, Score)

GAIN (NomJoueur, LieuTournoi, Date, Prime, NomSponsor)

SPONSOR (Nom, Adresse, ChiffreAffaire) 

Merci pour votre aide.

  • Partager sur Facebook
  • Partager sur Twitter
30 novembre 2020 à 9:11:24

Bonjour,

Les 3 colonnes évoquées comme clés étrangères sont correctes et je n'en vois moi aussi pas d'autres ...

Par contre cette base est vraiment mal fichue, c'est un exercice qui vient d'où ?

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
30 novembre 2020 à 18:45:00

Aucune idée, c'est un exercice venant de ma fac, et est-ce que lieutournoi_G est clé étrangère de lieutournoi_R en modifiant les noms des attributs ? pareil pour date
  • Partager sur Facebook
  • Partager sur Twitter
1 décembre 2020 à 9:05:00

Pour date, c'est non sans hésiter, la date est ici un attribut de RENCONTRE.

Pour LieuTournoi, c'est un des trucs mal fichu du modèle ... Il devrait y avoir une table LIEU, pour lister les lieux possibles. Donc sans cette table, pas de clé étrangère, mais des risques d'incohérence de données entre RENCONTRE et GAIN ...

Si l'on devait refaire le modèle avec plus de rigueur, ce serait plutôt :

  • nationalite ( id_nationalite [pk], libelle )
  • lieu ( id_lieu [pk], libelle )
  • sponsor ( id_sponsor [pk], nom, chiffre_affaire )
  • joueur ( id_joueur [pk], nom, prenom, annee, id_nationalite [fk] )
  • rencontre ( id_rencontre [pk], id_gagnant [fk], id_perdant [fk], id_lieu [fk], date_rencontre, score )
  • gain ( id_rencontre [pk][fk], id_sponsor [pk][fk], id_joueur [pk][fk], prime )
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL