0

我有一些定义组织、用户和组的表:
- Organization(id, name)
- User(id, name, Organization)
- Group(id, name, Organization)

尝试添加具有用户和组之间约束的 GroupMembership 表时,我很难过:
- GroupMembership(id, User, Group)

我希望数据库强制 GroupMembership 表中的所有记录都具有 User.Organization == Group.Organziation。从概念上讲,用户可以是其关联组织定义的任何/所有组的成员。

这有设计模式吗?

4

1 回答 1

2

如果您不想通过程序逻辑强制执行此规则,那么您可以添加到andorganization的主键中。这将向下传播到您的成员资格交集表。这允许您使用声明性引用完整性来施加此限制。GroupUserOrganization

就个人而言,我会三思而后行将 DRI 用于此特定规则。可以做到,但解决方案的副作用可能比原来的问题更糟。

于 2013-08-30T14:59:08.133 回答