組織、ユーザー、およびグループを定義するテーブルがいくつかあります。
- 組織 (id, 名前)
- ユーザー (id, 名前, 組織)
- グループ (id, 名前, 組織)
User と Group の間に制約がある GroupMembership テーブルを追加しようとすると困惑します:
- GroupMembership(id, User, Group)
GroupMembership テーブルのすべてのレコードに User.Organization == Group.Organzation が含まれるようにデータベースを設定したいと考えています。概念的には、ユーザーは、関連付けられた組織によって定義された任意またはすべてのグループのメンバーになることができます。
このための設計パターンはありますか?