0
我想设计一个Web应用程序的数据库,用户可以根据授予角色的权限访问特定的选项卡。最佳用户角色权限数据库设计实践?
我做了什么至今我创建了两个表USER_TABLE和USER_ROLES。
USER_TABLE有以下字段:
- ID(主键)
- USER_NAME
- 密码
- FIRST_NAME
- 姓氏
- CREATED_DATE
- role_id_fk(外键) 个
USER_ROLES具有低于字段:
ID(主键)
ROLE_NAME(例如ADMIN,TAB1_USER,TAB2_USER)
CREATED_DATE
这里,有用户ROLE_NAME “ADMIN” 可以看到所有的标签,其他用户只能访问特定的标签。
我的问题是我需要创建一个表USER_PERMISSIONS具有USER_ROLES表下面的字段外键:
- ID(主键)
- permission_type(ALL,TAB1,TAB2 ....)
或者我应该在我的代码级别管理?这两种方法的缺点和优点是什么?
这取决于您的要求。如果您只想实现在运行时无法更改的静态权限,则将所有应用程序的函数绑定到代码中的角色。优点 - 易于实现,缺点 - 每次更改特权都需要更改代码。如果您想要动态权限(可以在运行时更改)(例如,管理员可以直接在应用程序中编辑各个角色的权限),那么您需要USER_PERMISSIONS表,并将代码中的每个应用程序函数绑定到某个权限而不是角色。 – krokodilko