【发布时间】:2011-06-06 23:47:51
【问题描述】:
我正在考虑我的项目的权限系统,但我无法决定如何组织我的权限系统。简而言之,我会将我的问题描述为:
我应该创建共享实体(行)并应用权限还是为每个用户创建单独的实体(行)副本?
我的情况:我有 2 个实体
Company
{
[PK]
Id,
Name,
Contacts,
OwnerUser
},
Contact
{
[PK]
Phone,
ContactPerson
}
具有多对多关系。允许用户修改他们创建(拥有)的公司实体。
我的问题:联系人实体(行)可以在不同用户拥有的公司之间共享,并且假设两个用户都想将 Contact.ContactPerson 编辑为不同的值(例如,一个用户声称电话号码属于约翰,和其他它是汤姆的号码),如果我为每个公司(以及用户)创建单独的联系人副本,则可以解决这种情况,但是我的业务规则不允许具有相同电话号码的重复联系人,并且还有其他联系人属性除了电话号码之外,还必须共享(根据我的业务规则)。
如何解决这种情况?
【问题讨论】:
标签: c# database-design permissions business-logic