複数の関係を持つことができるエンティティがいくつかあります。
たとえば、次のエンティティがあります。
- entity_type
- 鬼ごっこ
- tag_assignment
- news_post
- アカウント
entity_type テーブルには、私のプロジェクトにあるすべてのエンティティ (ニュース投稿、ブログ投稿、メッセージ、アカウントなど) が記述されています。
タグ エンティティには ID と名前だけがあります。これは、後で tag_assignment エンティティを使用して他のエンティティにマップされるスタンドアロン エンティティです。
タグ割り当てエンティティには、id、tag_id、entity_type_id、および entity_id があります。Entity_type_id はどのエンティティを見つけることができるかを記述し、entity_id はテーブル内のエンティティを指定します。
だから私は、1つの列から多くのテーブルへの次の結合された外部キーを作成したい:
- tag_assignment.entity_type_id => entity_type (id)
- tag_assignment.entity_id => news_post (id)、アカウント (id) など
この複合キーを作ることは可能ですか?つまり、entity_type テーブルから行を削除した場合に依存関係を作成すると、他のテーブルですべてが削除/更新されます。アカウントを削除すると、アカウント テーブルへの外部キーを持つ tag_assignments のみが削除されます。