【发布时间】:2011-08-08 04:07:07
【问题描述】:
我正在开发一个应用程序,其中用户拥有使用不同功能(例如读取、创建、下载、打印、批准等)的不同权限。权限列表预计不会经常更改。对于如何将这些权限存储在数据库中,我有几种选择。
在什么情况下选项 2 会更好?
选项 1
使用关联表。
用户 ---- 用户 ID (PK) 姓名 部权限 ---- 权限 ID (PK) 名称
用户权限 ---- 用户 ID (FK) PermissionId (FK)
选项 2
为每个用户存储一个位掩码。
用户 ---- 用户 ID (PK) 姓名 部 权限
[Flags]
enum Permissions {
Read = 1,
Create = 2,
Download = 4,
Print = 8,
Approve = 16
}
【问题讨论】:
标签: c# sql-server database-design bitmask