Heim > Datenbank > MySQL-Tutorial > Wie kann die referenzielle Integrität zwischen Basistypen und exklusiven Subtypen in relationalen Datenbanken sichergestellt werden?

Wie kann die referenzielle Integrität zwischen Basistypen und exklusiven Subtypen in relationalen Datenbanken sichergestellt werden?

DDD
Freigeben: 2025-01-03 15:42:39
Original
583 Leute haben es durchsucht

How to Ensure Referential Integrity Between Base Types and Exclusive Subtypes in Relational Databases?

So implementieren Sie referenzielle Integrität in Subtypen

Einführung

In der relationalen Datenbankmodellierung stellt ein Subtyp eine Spezialisierung eines Basistyps dar. Durch die Implementierung der referenziellen Integrität zwischen Basistypen und Untertypen wird sichergestellt, dass die Daten in diesen Tabellen konsistent und genau bleiben.

Exklusive Untertypen

Bei exklusiven Untertypen kann ein Basistyp nur eine Untertypzeile haben. So erzwingen Sie diese Einschränkung:

  1. Erstellen Sie eine Diskriminatorspalte:Fügen Sie eine Spalte zum Basistyp hinzu, um den Untertyp zu identifizieren.
  2. Implementieren Sie eine CHECK CONSTRAINT: Verwenden Sie einen CHECK CONSTRAINT in der Subtyptabelle, um sicherzustellen, dass die Basistypzeile vorhanden ist und den richtigen Diskriminator hat Wert.
CREATE TABLE BaseTable (
  BaseTypeId INT PRIMARY KEY,
  Discriminator CHAR(1) CHECK (Discriminator IN ('B', 'C', 'D'))
);

CREATE TABLE SubtypeTable (
  SubtypeTypeId INT PRIMARY KEY,
  FOREIGN KEY (BaseTypeId) REFERENCES BaseTable(BaseTypeId),
  CHECK (
    EXISTS (
      SELECT 1 
      FROM BaseTable 
      WHERE BaseTypeId = SubtypeTable.BaseTypeId 
        AND Discriminator = 'B'
    )
  )
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann die referenzielle Integrität zwischen Basistypen und exklusiven Subtypen in relationalen Datenbanken sichergestellt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage