ホームページ  >  記事  >  データベース  >  外部キーは多態性関連付けで複数のテーブルを参照できますか?

外部キーは多態性関連付けで複数のテーブルを参照できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 02:39:29924ブラウズ

Can a Foreign Key Reference Multiple Tables in Polymorphic Associations?

多態性外部キー: 外部キーは複数のテーブルを参照できますか?

リレーショナル データベースにおける外部キーの概念には、通常、正確なターゲットの指定が含まれます参照列が指すテーブル。ただし、テーブルがセット内の他の複数のテーブルと関係を持つ多態性の関連付けを扱う場合、「それらのテーブルのいずれかを参照できる外部キーを持つことは可能ですか?

答え: いいえ

MySQL と PostgreSQL の両方で、外部キー制約は単一の親テーブルのみを参照できます。この制約は、親テーブル内の参照行と参照行の間の明確な関係を維持することにより、データの整合性を確保します。

多態性関連付けの代替

外部キーは使用できないため、複数のテーブルを直接指す場合、多態性の関連付けをモデル化するには代替ソリューションが必要です:

  • 結合継承: 子テーブルのすべての列と識別子列を含む単一のテーブルを作成します。各行がどのテーブルに属しているかを識別します。
  • クラス階層ごとのテーブル: 子テーブルごとに個別のテーブルを作成し、継承を通じてテーブル間の関係を確立します。
  • ユニオン タイプ: 異なるドメインのデータ値を収容できる単一の列を使用して、複数の子テーブルを参照できるようにします。

追加リソース

ポリモーフィックな関連付けとその解決策について詳しくは、次のリソースを参照してください。

    SQL の実践的なオブジェクト指向モデル
  • SQL アンチパターン、第 1 巻: データベース プログラミングの落とし穴の回避

以上が外部キーは多態性関連付けで複数のテーブルを参照できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。