ホームページ >データベース >mysql チュートリアル >条件付き外部キー制約なしで MySQL にポリモーフィックな関連付けを実装するにはどうすればよいですか?

条件付き外部キー制約なしで MySQL にポリモーフィックな関連付けを実装するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-16 11:50:58827ブラウズ

How Can I Implement Polymorphic Associations in MySQL Without Conditional Foreign Key Constraints?

MySQL ポリモーフィック関連付け: 外部キーの制限を克服

単一の外部キーが複数のテーブルを指すことができるポリモーフィックな関連付けは、外部キー制約の厳格な性質により MySQL に課題をもたらします。 標準の外部キーには固定ターゲット テーブルが必要なため、条件付き参照が不可能になります。

解決策は「スーパーテーブル」戦略にあります。中央のテーブル (Commentable と呼びます) が仲介者として機能します。 このテーブルには一意の識別子 (疑似キー) が含まれており、ポリモーフィックな関連付けが必要な他のすべてのテーブルの共通参照ポイントとして機能します。

このアプローチはオブジェクト指向の設計原則を反映しています。 BlogPostsUserPictures などのテーブルは、事実上、この共有識別子を介して Commentable スーパーテーブルから継承します。この共有 id により、さまざまなコンテンツ タイプ間でデータの整合性が維持されます。

重要なことは、レコードをサブタイプ テーブル (BlogPosts など) に追加する前に、まず対応するエントリを Commentable テーブルに作成して擬似キーを生成する必要があります。 これにより、関係が適切に管理され、ポリモーフィックな関連付けの複雑さに対応しながら、従来の外部キー システムの動作を模倣することが保証されます。

以上が条件付き外部キー制約なしで MySQL にポリモーフィックな関連付けを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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