【发布时间】:2011-05-25 22:07:31
【问题描述】:
我们公司在从单个用户应用程序迁移到多个用户应用程序时遇到问题。我们的设置是用户将拥有一个产品,并且所有权是通过一个外键。由于他们拥有产品,他们将有权执行产品的所有功能。如果您不拥有该产品并且不是管理员,则您无法访问该产品或其任何功能。
现在,我们正尝试向已与各自所有者分组的其他用户开放对产品的访问权限,以进行协作。包括所有者在内的这些其他用户可能具有基于一组权限的有限功能。权限范围被设计为基于
- 个人与产品所有权关系 (FK)
- 通过 Person_Product 桥接表的人员与产品关系
- Person to Group 与 Product 的关系,其中产品属于一个且仅属于一个 Group
- 人员到组织(应用程序范围权限),如果未声明通过其他关系的权限,则这是用户的默认权限。
这些关系已经实现,但是在系统基于关系进行大量计算时出现了问题。例如获得用户对产品集合的权限会严重影响性能。此外,我们系统的灵活性也受到新关系和抽象的限制。
就数据库而言,我认为关系 2 是基本块,可用于表达所有关系的行为以及我们公司将被要求在其上分层的任何未来抽象。
我的这种思路正确吗?还是我们现在走在正确的轨道上?任何有用的意见将不胜感激。
标记了相关技术。
【问题讨论】:
标签: c# sql-server-2008 asp.net-membership subsonic