MySQL/ relation identifiée/ clés etrangeres
Résolu
123biwei
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
vordano Messages postés 1685 Date d'inscription Statut Membre Dernière intervention -
vordano Messages postés 1685 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je m'escuse par avance si mon vocabulaire informatique n'est pas precis et adapté, je ne suis pas issu d'une formation IT. J'espère quand même pouvoir faire comprendre.
Voila je débute sous DBDesigner4 pour créer une nouvelle base de donnée MySQL.
(Jusque la je creeais mes base directement sous phpMyAdmin)
Je ne suis pas vraiment sur de bien comprendre la difference entre une relation identifiée et non-identifiée. SI qqun peut m'éclairer en qq ligne je suis preneur.
Mais ma question est la suivante: pourquoi dans une relation identifiée DBDesigner inclut non seulement la clé etrangere parent, mais aussi grand parents, et toutes les clés ascendantes?
Example: 3 tables: Pays, Ville, Quartier. (relations 1:n, un pays a plusieurs villes qui a plusieurs quartiers).
Pourquoi DBDesigner me crèe:
(Jusque la je prenais uniquement relation non identifiée. Mais les relations n:m sont uniquement identifiée sous DBD.)
Merci à tous!!
Bien cordialement,
PIerre.
Je m'escuse par avance si mon vocabulaire informatique n'est pas precis et adapté, je ne suis pas issu d'une formation IT. J'espère quand même pouvoir faire comprendre.
Voila je débute sous DBDesigner4 pour créer une nouvelle base de donnée MySQL.
(Jusque la je creeais mes base directement sous phpMyAdmin)
Je ne suis pas vraiment sur de bien comprendre la difference entre une relation identifiée et non-identifiée. SI qqun peut m'éclairer en qq ligne je suis preneur.
Mais ma question est la suivante: pourquoi dans une relation identifiée DBDesigner inclut non seulement la clé etrangere parent, mais aussi grand parents, et toutes les clés ascendantes?
Example: 3 tables: Pays, Ville, Quartier. (relations 1:n, un pays a plusieurs villes qui a plusieurs quartiers).
Pourquoi DBDesigner me crèe:
PAYS idPays VILLE idVille idPays (cle etrangere) QUARTIER idQuartier idVIlle (cle etrangere) idPays (cle etrangere et celle la pourquoi elle est crée???? elle est obligatoire sous DBD mais je ne vois pas son utilité)
(Jusque la je prenais uniquement relation non identifiée. Mais les relations n:m sont uniquement identifiée sous DBD.)
Merci à tous!!
Bien cordialement,
PIerre.
A voir également:
- MySQL/ relation identifiée/ clés etrangeres
- Cles windows 8 - Guide
- Mysql community server - Télécharger - Bases de données
- Clés word - Télécharger - Sécurité
- Trousseau de clés iphone - Guide
- Cles usb non reconnu - Guide
3 réponses
bonjour,
en faite dans ce cas c'est normal qu'un quartier au un id ville et pays comme clé étrangere, car un nom de quartier peut exister dans différentes villes et pays
mais après tout dépend du contexte
en faite dans ce cas c'est normal qu'un quartier au un id ville et pays comme clé étrangere, car un nom de quartier peut exister dans différentes villes et pays
mais après tout dépend du contexte
Hello,
Merci BCP pour ta réponse, je la reçois en meme temps que je trouve de mon cote..
D'abord je ne suis pas d'accord, désolé ;-). (Mais je reste super reconnaissant de ton aide cela va de sois)
Du moment que la table 'quartier' comporte la clé étrangère 'Ville_id', il n'y a aucune ambiguite possible: le quartier est liée a une seule ville.
Ensuite je met mes reponses qui peuvent etre corrigées ou etre utilisées par la suite.
1/ Relation identifie: En gros c'est mettre toutes les clés parents dans les tables filles. L'idée principale est de limiter les jointures futures.
Example d'une base de donnée complexe ou une table client aurait comme fille une table commande > table facture > table payement > table livraison > table camion..
La table camion aura donc comme clé etrangere idClient, idFacture, idPayement, IdLivraison. Ca multiplie le nombre de cles par contre si on veut savoir a quel camion correspond quel client, pas besoin de faire un commande SQL à 4 jointures.
Enfin c'est ce que je comprend de la relation identifiée. Merci a tout ceux qui voudront bien me corriger si je me trompe.
2/ DBDesigner est remplacé par MySQL workbench, donc pas la peine de s'attarder trop sur ce logiciel.
Mais par default dans une reation n:m, DBD va creer un table intermediaire (la méthode classique) avec deux relations identifiées. Il faut manuelement changer le type de relation, puis virer les clé etrangeres inutiles.
A bientot,
Pierre
Merci BCP pour ta réponse, je la reçois en meme temps que je trouve de mon cote..
D'abord je ne suis pas d'accord, désolé ;-). (Mais je reste super reconnaissant de ton aide cela va de sois)
Du moment que la table 'quartier' comporte la clé étrangère 'Ville_id', il n'y a aucune ambiguite possible: le quartier est liée a une seule ville.
Ensuite je met mes reponses qui peuvent etre corrigées ou etre utilisées par la suite.
1/ Relation identifie: En gros c'est mettre toutes les clés parents dans les tables filles. L'idée principale est de limiter les jointures futures.
Example d'une base de donnée complexe ou une table client aurait comme fille une table commande > table facture > table payement > table livraison > table camion..
La table camion aura donc comme clé etrangere idClient, idFacture, idPayement, IdLivraison. Ca multiplie le nombre de cles par contre si on veut savoir a quel camion correspond quel client, pas besoin de faire un commande SQL à 4 jointures.
Enfin c'est ce que je comprend de la relation identifiée. Merci a tout ceux qui voudront bien me corriger si je me trompe.
2/ DBDesigner est remplacé par MySQL workbench, donc pas la peine de s'attarder trop sur ce logiciel.
Mais par default dans une reation n:m, DBD va creer un table intermediaire (la méthode classique) avec deux relations identifiées. Il faut manuelement changer le type de relation, puis virer les clé etrangeres inutiles.
A bientot,
Pierre