【发布时间】:2015-10-26 01:19:26
【问题描述】:
我正在为 CMS 开发授权系统。我有以下表结构: 所有其他表对我来说都可以,但我想知道最佳实践 对于 GroupPermission 表,如下所述。
用户:
用户名,姓名
组: 组 ID、名称
组用户:
GroupUserId,GroupId,UserId
模块:
模块ID,名称
权限:
PermissionId,Name,ModuleId,isAllowed
方法 1:
GroupPermission:
方法 2:
GroupPermission:
1 1 1
2 1 2
3 1 3
我需要你对提到的两种方法的建议,在第一种方法中,一个优点是只为特定组返回一行,但我在字符串中连接权限,所以会有字符串解析方法的开销, 在第二种方法中,我使用“Id”而不是字符串。
由于此表是使用最多的表,会影响应用程序的整体性能,因此需要最大限度地优化此表。
我研究了其他 Cms 的数据库,如 word press、orchard、silver stripe 等,但他们只有很少的用户和组表,找不到任何对我的要求有用的东西。
非常感谢任何其他替代建议或想法。
【问题讨论】:
-
如果有人能告诉我被否决的原因会很好
标签: sql-server database database-design relational-database database-schema