ホームページ > データベース > mysql チュートリアル > リレーショナル データベースの基本タイプと排他的サブタイプ間の参照整合性を確保するにはどうすればよいですか?

リレーショナル データベースの基本タイプと排他的サブタイプ間の参照整合性を確保するにはどうすればよいですか?

DDD
リリース: 2025-01-03 15:42:39
オリジナル
583 人が閲覧しました

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

サブタイプの参照整合性を実装する方法

はじめに

リレーショナル データベース モデリングでは、サブタイプはベースタイプの特殊化を表します。ベースタイプとサブタイプ間の参照整合性を実装すると、これらのテーブル内のデータの一貫性と正確さが確保されます。

排他的サブタイプ

排他的サブタイプでは、ベースタイプはサブタイプ行を 1 つだけ持つことができます。この制約を強制するには:

  1. 識別子列を作成します: サブタイプを識別するためにベースタイプに列を追加します。
  2. CHECK CONSTRAINT を実装します: サブタイプ テーブルで CHECK CONSTRAINT を使用して、 Basetype 行が存在し、正しい識別子の値があります。
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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート