我正在开发一个应用程序,用户有不同的权限来使用不同的特性(例如,阅读、创建、下载、打印、批准等)。预计权限列表不会经常更改。关于如何在数据库中存储这些权限,我有几个选项。
在什么情况下,选择2会更好?
使用关联表。
User ---- UserId (PK) Name Department
Permission ---- PermissionId (PK) Name
User_Permission ---- UserId (FK) PermissionId (FK)
为每个用户存储一个位掩码。
User ---- UserId (PK) Name Department Permissions
[Flags]
enum Permissions {
Read = 1,
Create = 2,
Download = 4,
Print = 8,
Approve = 16
}