我正在开发一个应用程序,其中用户具有使用不同功能(例如读取,创建,下载,打印,批准等)的不同权限。权限列表不会经常更改。我有几个关于如何在数据库中存储这些权限的选项。
在什么情况下,选择2会更好?
选项1
使用关联表。
用户 ---- 用户名(PK) 名称 部
允许 ---- PermissionId(PK) 名称
用户权限 ---- 用户ID(FK) PermissionId(FK)
选项2
为每个用户存储一个位掩码。
用户 ---- 用户名(PK) 名称 部 权限
[Flags]
enum Permissions {
Read = 1,
Create = 2,
Download = 4,
Print = 8,
Approve = 16
}