Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memastikan Integriti Rujukan Antara Jenis Asas dan Subjenis Eksklusif dalam Pangkalan Data Hubungan?

Bagaimana untuk Memastikan Integriti Rujukan Antara Jenis Asas dan Subjenis Eksklusif dalam Pangkalan Data Hubungan?

DDD
DDDasal
2025-01-03 15:42:39598semak imbas

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

Cara Melaksanakan Integriti Rujukan dalam Subjenis

Pengenalan

Dalam pemodelan pangkalan data hubungan, subjenis mewakili pengkhususan jenis asas. Melaksanakan integriti rujukan antara jenis asas dan subjenis memastikan bahawa data dalam jadual ini kekal konsisten dan tepat.

Subjenis Eksklusif

Dengan subjenis eksklusif, jenis asas hanya boleh mempunyai satu baris subjenis. Untuk menguatkuasakan kekangan ini:

  1. Buat Lajur Diskriminator: Tambahkan lajur pada jenis asas untuk mengenal pasti subjenis.
  2. Laksanakan KEKANGAN SEMAK: Gunakan KEKANGAN SEMAK dalam jadual subjenis untuk memastikan baris jenis asas wujud dan mempunyai nilai diskriminasi yang betul.
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'
    )
  )

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Integriti Rujukan Antara Jenis Asas dan Subjenis Eksklusif dalam Pangkalan Data Hubungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn