|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
Bonjour,
je débute dans la conception des bases sous MySQL 5 / phpMyAdmin 2.9.0.3 Et je me retrouve confronté à un problème avec les foreign key car je ne vois pas comment faire pour les mettre. J'ai 3 tables : groupe id_groupe nom id_ville personne id_personne nom id_groupe ville id_ville cp nom Comment faire pour avoir mon intégrité référentielle ? Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : novembre 2006 Messages : 120 ![]() |
Premièrement il faut absolument que le type de tables soit de l'innodb
Ensuite tu crées tes tables et tes champs Puis tu cliques sur la table ou tu veux créer tes foreign keys. La page de structures s'ouvre, au centre tu as un lien ce nomment "gestion des relations" tu cliques dessus et là tu renvoies tes champs vers ceux des autres tables pour ainsi créer tes foreign key. Par contre il faut absolument que tu es définis un index (vulgairement une clef) sur ce champs dans ta table ou tu veux creer le lien. table A id test B table B id test ainsi test B est une foreign key de test de la table B donc en résumé table A et table B doivent être créées sous le moteur InnoDB et test B dans la table A doit être définie comme une clef pour ensuite faire le lien avec test B de table B Bonne chance |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
bon, j'avance...
Cependant, je n'y arrive toujours pas... Maintenant je vois bien le bouton "Gestion des relations" mais je ne vois pas comment cela marche. Pour la table groupe : id_groupe>XXX nom>XXX adresse>Aucune clef n'est définie ! id_ville>Aucune clef n'est définie ! avec à la place des XXX une liste déroulante contenant : groupe->id_groupe groupe->nom groupe->id_ville personne->id_personne personne->id_groupe ville->id_ville ville->nom Donc, j'aimerais relier groupe.id_groupe à ville.id_ville. Pour cela, il faudrait modifier B]groupe.id_groupe[/B] en clé de type INDEX ? Et pourquoi la liste déroulante propose des champs de la même table :groupe->id_groupe, groupe->nom, groupe->id_ville ? ou même pourquoi la liste déroulante propose les champs groupe->nom et ville->nom alors qu'ils ne sont pas de type clé primaire ?
|
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : novembre 2006 Messages : 120 ![]() |
J'avoue que je n'ai pas regardé dans le détail comment ca fonctionnait!!
Par contre je peux répondre à certaine question Donc, j'aimerais relier groupe.id_groupe à ville.id_ville. Pour cela, il faudrait modifier B]groupe.id_groupe[/b] en clé de type INDEX ? Non pas du tout! il faut modifier groupe.id_ville pour créer un index dessus de sorte que : id_ville>Aucune clef n'est définie ! devienne id_ville>XXX Et pourquoi la liste déroulante propose des champs de la même table :groupe->id_groupe, groupe->nom, groupe->id_ville ? Ce menu gère les relations, tu peux donc gérer tous types de relations même vis-à-vis de champs de la même table !!! ou même pourquoi la liste déroulante propose les champs groupe->nom et ville->nom alors qu'ils ne sont pas de type clé primaire ? Simplement parce qu'une foreign key ne pointe pas forcement vers une contraine de clef primaire. elle peut pointer vers d'autres types de champs!!! Bonne continuation |
|
|
00
|
|
|
#5 | ||
|
Membre habitué
![]() Inscription : octobre 2005 Messages : 641 ![]() |
ok merci beberd,
bon j'ai finalement tout supprimé pour tout refaire en SQL... Code :
Merci @+ |
||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com