相关疑难解决方法(0)

什么时候将标志存储为位掩码而不是使用关联表?

我正在开发一个应用程序,其中用户具有使用不同功能的不同权限(例如,读取,创建,下载,打印,批准等).预计权限列表不会经常更改.我有几个如何在数据库中存储这些权限的选项.

选项2在哪些情况下更好?

选项1

使用关联表.

User
----
UserId (PK)
Name
Department
Permission
----
PermissionId (PK)
Name
User_Permission
----
UserId (FK)
PermissionId (FK)

选项2

为每个用户存储位掩码.

User
----
UserId (PK)
Name
Department
Permissions
[Flags]
enum Permissions {
    Read = 1,
    Create = 2,
    Download = 4,
    Print = 8,
    Approve = 16
}
Run Code Online (Sandbox Code Playgroud)

c# sql-server database-design bitmask

75
推荐指数
4
解决办法
8059
查看次数

标签 统计

bitmask ×1

c# ×1

database-design ×1

sql-server ×1