如何在用户和组必须是同一组织的情况下,对用户/组成员身份进行建模



我有几个定义组织、用户和组的表:
-组织(id,name)
-用户(id、名称、组织)
-组(id、名称、组织)

尝试添加一个在用户和组之间具有约束的GroupMembership表时,我被难住了:
-GroupMembership(id、用户、组)

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

这个有设计模式吗?

如果不想用过程逻辑强制执行此规则,则可以将organization添加到GroupUser的主键中。这将把Organization向下传播到您的成员交叉表。这允许您使用声明性引用完整性来施加此限制。

就我个人而言,对于这个特定的规则,我会再三考虑使用DRI。这是可以做到的,但解决方案的副作用可能比最初的问题更严重。

相关内容

最新更新