首頁 >資料庫 >mysql教程 >如何確保關聯式資料庫中基本型別和獨佔子型別之間的參考完整性?

如何確保關聯式資料庫中基本型別和獨佔子型別之間的參考完整性?

DDD
DDD原創
2025-01-03 15:42:39571瀏覽

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

如何在子類型中實現引用完整性

簡介

在關聯式資料庫建模中,子類型代表基本類型的特化。在基本類型和子類型之間實現參考完整性可確保這些表中的資料保持一致和準確。

獨佔子類型

使用獨佔子型別,一個基本型別只能有一個子型別。若要強制實施此約束:

  1. 建立鑑別器列:將一列以識別子類型新增至基本型別。
  2. 實現檢查約束: 在子類型表中使用 CHECK CONSTRAINT 以確保基本類型行存在並且具有正確的鑑別器值。
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'
    )
  )

以上是如何確保關聯式資料庫中基本型別和獨佔子型別之間的參考完整性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn