我想为网络应用设计数据库,用户可以根据给予角色的权限访问特定标签。
到目前为止,我创建了两个表 USER_TABLE 和 USER_ROLES 。
USER_TABLE 有以下字段:
USER_ROLES 的字段如下:
id(主键)
role_name(例如ADMIN,TAB1_USER,TAB2_USER)
CREATED_DATE
此处,具有role_name“ ADMIN ”的用户可以看到所有选项卡,其他用户只能访问特定选项卡。
我的问题是,我是否需要在 USER_ROLES 表格中创建一个包含外键的表 USER_PERMISSIONS ,其中包含以下字段:
或者我应该在我的代码级别管理这个?两种方法的缺点和优点是什么?
答案 0 :(得分:24)
正如krokodilko在评论中写道,这取决于你需要的灵活程度 我已经为我的一个客户实现了基于角色的权限,如下所示:
但我的要求是尽可能灵活,这是一个仍在增长的系统(6年还在增加)。
我想很多应用程序可以让用户将角色视为一对多的关系,而不是像我的情况那样多对多,但我不会在任何情况下将权限或角色转换为权限。应用