Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gleicher Fremdschlüssel in mehreren Tabellen

Sie müssen sie nicht unterschiedlich benennen. Sie können eine FAM_ID-Spalte in FAMILY, eine FAM_ID-Spalte in DOCUMENTS und eine FAM_ID-Spalte in CONTACT haben.

In diesem Fall macht die gleiche Benennung deutlich, dass sie sich auf dasselbe beziehen. Sie können sich aber auch eine andere Namenskonvention ausdenken, wenn Sie möchten.

Zum Beispiel verwende ich etwas in der Art von family_ID in der Familientabelle und contact_familyID , document_familyID wenn Sie aus den Kontakt- und Dokumententabellen darauf verweisen.

Der einzige Nachteil bei der gleichen Benennung ist, soweit ich sehen kann, dass Sie bei Joins nicht einfach über den Spaltennamen auf sie verweisen können, sondern sie mit einem Alias ​​versehen oder mit Tabellenname.Spaltenname auf sie verweisen müssen.

Bearbeiten:Ich glaube, ich habe herausgefunden, was Sie meinen, wenn Sie nicht denselben Namen haben können. Dies ist der Fall, wenn Sie eine Fremdschlüsselbeziehung innerhalb einer einzelnen Tabelle hinzufügen, wie hier beschrieben:http://bugs.mysql.com/bug.php?id=46363