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

Ist es möglich, eine Spalte als mehrere Fremdschlüssel zu referenzieren?

Nein.

Das heißt, Sie können auf diese Weise keine Fremdschlüsseleinschränkung erstellen. Sie können jedoch einen Fremdschlüssel ohne Fremdschlüsseleinschränkung verwenden.

Alles, was ein Fremdschlüssel ist, ist der Wert des Primärschlüssels einer anderen Tabelle (oder eines anderen Datensatzes in derselben Tabelle), der in Joins verwendet werden kann. Tatsächlich könnten Sie auf andere Felder als den Primärschlüssel verweisen, wenn Sie nur den Wert für Joins verwenden müssen.

Eine Fremdschlüsseleinschränkung weist die Datenbank jedoch an, die Regel durchzusetzen, dass die referenzierte Tabelle für jeden Fremdschlüsselwert in einer Tabelle einen Datensatz mit diesem als Primärschlüssel hat. Erzwingen, dass jeder Fremdschlüssel in der PDF-Tabelle einen Primärschlüssel IN ALLEN VIER TABELLEN hat wird bei dir nicht funktionieren. Fahren Sie also fort und verwenden Sie das Feld, um auf andere Datensätze zu verweisen, aber erstellen Sie einfach keine Fremdschlüsseleinschränkung.