Схема базы данных авторизации на основе ресурсов - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть довольно распространенная схема базы данных для аутентификации / авторизации:

User

 - Id
 - Username
 - Password

Role

 - Id
 - Name

RolePermission

 - RoleId
 - PermissionType

UserRole

 - UserId
 - RoleId

Вплоть до проблем нет. Теперь мне нужно связать UserRole с ресурсами довольно сложным способом.

Например, представьте себе ресурс Department. Пользователь может быть Преподаватель для одного отдела и Аудитор для других отделов. Этот же пользователь также может быть Supervisor для всего ресурса Institute .

Теперь мне нужно express это требование в структуре моей базы данных, и я пришел с эта идея:

User

Id   Username
1    user1

Role

Id   Name
1    Teacher
2    Auditor
3    Supervisor

Department

Id   Name
1    Dep1
2    Dep2
3    Dep3

Institute

Id   Name
1    Inst1

UserRole

UserId   RoleId   EntityName   EntityId
1        1        Department   1
1        2        Department   2
1        2        Department   3
1        3        Institute    1

Это может сработать, но я обеспокоен отсутствием принудительного применения ссылочной целостности. Есть ли лучшие решения для моделирования этих требований?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...