Heim >Datenbank >MySQL-Tutorial >Kann ein Fremdschlüssel auf mehrere Tabellen in einer relationalen Datenbank verweisen?

Kann ein Fremdschlüssel auf mehrere Tabellen in einer relationalen Datenbank verweisen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-23 23:10:29316Durchsuche

Can a Foreign Key Reference Multiple Tables in a Relational Database?

Kann ein Fremdschlüssel auf mehrere Tabellen verweisen?

Das Festlegen von Fremdschlüsseleinschränkungen erfordert normalerweise die Auswahl einer einzelnen Zieltabelle. Im Kontext polymorpher Beziehungen kann eine einzelne Tabelle jedoch Verbindungen mit mehreren anderen Tabellen haben.

Polymorphe Beziehungen und Fremdschlüssel

In polymorphen Beziehungen kann eine Tabelle ( (z. B. Bilder) unterhält eine Beziehung zu einer von mehreren anderen Tabellen (z. B. Untergebenen oder Produkten). Dies wird durch eine Spalte (person_type) erreicht, die die spezifische Tabelle identifiziert, auf die der Fremdschlüssel verweisen soll.

Antwort

Leider nein. Fremdschlüsseleinschränkungen erlauben nur Verweise auf eine einzelne übergeordnete Tabelle. Dies bedeutet, dass Sie keinen Fremdschlüssel erstellen können, der auf mehrere Tabellen gleichzeitig verweist.

Alternativen

Es gibt jedoch Möglichkeiten, dieses Verhalten mithilfe anderer Techniken zu simulieren, z :

  • Diskriminatorspalten: Fügen Sie der übergeordneten Tabelle eine Spalte hinzu, die den Typ der untergeordneten Tabelle identifiziert.
  • Vereinigungstabellen: Erstellen eine einzelne Tabelle, die die kombinierten Daten aller zugehörigen Tabellen enthält.

Das obige ist der detaillierte Inhalt vonKann ein Fremdschlüssel auf mehrere Tabellen in einer relationalen Datenbank verweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn