Polymorphe Fremdschlüsseleinschränkungen: Referenzierung mehrerer Tabellen
Im Bereich des Datenbankdesigns stellen Fremdschlüsseleinschränkungen Beziehungen zwischen Tabellen her und stellen so die Integrität sicher von Daten durch tabellenübergreifendes Verbinden von Datensätzen. Traditionell verweisen Fremdschlüssel auf eine einzelne bestimmte Tabelle. Es stellt sich jedoch die Frage: Ist es möglich, einen Fremdschlüssel zu erstellen, der auf eine von mehreren Tabellen verweist?
Um dieses Konzept zu verstehen, betrachten Sie eine polymorphe Beziehung zwischen einer Tabelle und einer Reihe von Tabellen. In einem solchen Szenario kann eine Tabelle mit einer beliebigen Tabelle aus einer Gruppe von Tabellen verknüpft sein. Betrachten Sie zum Beispiel drei Tabellen:
Wenn in diesem Beispiel die Spalte „person_type“ in der Bildertabelle „Untergebene“ enthält, dann person_id sollte ein Fremdschlüssel sein, der auf subordinates.id verweist. Wenn person_type gleich „products“ ist, sollte person_id auf products.id verweisen.
Die Antwort: Nicht möglich für einen einzelnen Fremdschlüssel
Nach sorgfältiger Prüfung ergibt sich Folgendes Es ist klar, dass es nicht möglich ist, eine einzelne Fremdschlüsseleinschränkung zu haben, die auf mehrere Tabellen verweist. Eine Fremdschlüsseleinschränkung zielt immer auf genau eine übergeordnete Tabelle ab. Wenn ein Feld daher aufgrund einer Bedingung auf mehrere Tabellen verweisen muss, müssen alternative Lösungen untersucht werden.
Zusätzliche Ressourcen für Polymorphismus
Für ein tieferes Verständnis polymorpher Assoziationen: Erwägen Sie die Erkundung der folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonKönnen Fremdschlüsseleinschränkungen auf mehrere Tabellen verweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!