Heim > Datenbank > MySQL-Tutorial > Können Fremdschlüsseleinschränkungen auf mehrere Tabellen verweisen?

Können Fremdschlüsseleinschränkungen auf mehrere Tabellen verweisen?

Mary-Kate Olsen
Freigeben: 2024-10-24 05:42:02
Original
722 Leute haben es durchsucht

Can Foreign Key Constraints Reference Multiple Tables?

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:

  • images: person_id, person_type
  • subordinates: id, col1, col2...col9
  • Produkte: id, colA, colB...colZ

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:

  • Präsentation: Praktische objektorientierte Modelle in SQL
  • Buch: SQL Antipatterns, Band 1: Vermeidung der Fallstricke der Datenbankprogrammierung

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage