Referenzielle Integrität in Subtyp-Implementierungen
Einführung
Referenzielle Integrität in Subtyp-Strukturen stellt sicher, dass dort ist eine gültige Beziehung zwischen übergeordneten und untergeordneten Tabellen. Exklusive Untertypen erlauben nur einen Untertyp für ein bestimmtes übergeordnetes Element, während nicht-exklusive Untertypen mehrere Untertypen zulassen.
Exklusive Untertypen
Um referenzielle Integrität für exklusive Untertypen zu implementieren:
-
Diskriminatorspalte: Fügen Sie der übergeordneten Tabelle eine Diskriminatorspalte hinzu, um den Untertyp anzugeben.
- Implementieren Sie einen CHECK CONSTRAINT, um sicherzustellen, dass der Diskriminatorwert innerhalb des zulässigen Bereichs liegt.
-
Primärschlüssel-zu-Fremdschlüssel-Beziehung: Der Primärschlüssel der übergeordneten Tabelle wird zum Fremdschlüssel in der Untertyptabelle, wodurch a einzelner Untertyp pro übergeordneter Zeile.
-
Benutzerdefinierte Funktion (UDF): Erstellen Sie eine UDF, die prüft, ob der Primärschlüssel und der Diskriminator in der übergeordneten Tabelle vorhanden sind.
-
CHECK CONSTRAINT in der Subtyp-Tabelle: Implementieren Sie einen CHECK CONSTRAINT in der Subtyp-Tabelle, um die UDF aufzurufen und das übergeordnete Element zu validieren Existenz.
-
Transaktionsprüfungen:Verwenden Sie Transaktionslogik, um zu überprüfen, ob für jedes übergeordnete Element mindestens ein Untertyp vorhanden ist.
Nicht-exklusive Untertypen
Für Nicht-Exklusive Untertypen:
-
Primärschlüssel-zu-Fremdschlüssel-Beziehung:Stellen Sie einen Primärschlüssel-zu-Fremdschlüssel-Beziehung wie in exklusiven Untertypen her.
-
Existenzprüfung: Führen Sie mithilfe des übergeordneten Primärschlüssels eine Existenzprüfung der Subtyptabelle durch, um festzustellen, ob ein Subtyp vorhanden ist oder nicht.
Vorteile des UDF-basierten Ansatzes
- Vermeidet Datenduplizierung und Indizes-Overkill.
- Behandelt Szenarios, in denen der Untertyp ist zum Zeitpunkt des Elternteils nicht vorhanden einfügen.
Antwort auf Kommentare
-
Update-Schutz für Discriminator: Offene Architekturstandards (ACID-Transaktionen) verhindern unbefugte Updates . Darüber hinaus stellen der kontrollierte Zugriff auf die Datenbank und die Verwendung von Transaktionen sicher, dass Aktualisierungen die Datenintegrität wahren.
-
UDF vs. Duplicate Discriminator FK: UDFs bieten eine effizientere und flexiblere Lösung, ohne dass zusätzliche Funktionen erforderlich sind Tabellen und Indizes.
Das obige ist der detaillierte Inhalt vonWie kann die referenzielle Integrität in exklusiven und nicht-exklusiven Subtyp-Datenbankimplementierungen aufrechterhalten werden?. 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