Я работаю над приложением, в котором пользователи имеют разные разрешения для использования различных функций (например, Чтение, Создание, Загрузка, Печать, Утверждение и т. Д.). Список разрешений не будет часто меняться. У меня есть несколько вариантов сохранения этих разрешений в базе данных.
В каких случаях вариант 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
}