「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 外部キーはポリモーフィックな関連付けで複数のテーブルを参照できますか?

外部キーはポリモーフィックな関連付けで複数のテーブルを参照できますか?

2024 年 11 月 16 日に公開
ブラウズ:368

Can a Foreign Key Reference Multiple Tables in Polymorphic Associations?

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

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

答え: いいえ

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

多態性関連付けの代替

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

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

追加リソース

多態性の関連付けとその解決策の詳細については、次を参照してください。リソース:

  • SQL の実践的なオブジェクト指向モデル
  • SQL アンチパターン、第 1 巻:データベース プログラミングの落とし穴を回避する
リリースステートメント この記事は次の場所に転載されています: 1729692085 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3