我想为一个Web应用程序设计数据库,在该数据库中,用户可以根据授予角色的权限来访问特定选项卡。
到目前为止,我已经创建了两个表 USER_TABLE 和 USER_ROLES 。
USER_TABLE 具有以下字段:
USER_ROLES 具有以下字段:
id(主键)
角色名称(例如ADMIN,TAB1_USER,TAB2_USER)
创建日期
在这里,具有role_name“ ADMIN ”的用户可以看到所有选项卡,其他用户只能访问特定的选项卡。
我的问题是我需要在 USER_ROLES* 表中创建一个具有外键的表 USER_PERMISSIONS, 其字段如下: *
还是应该在代码级别进行管理?两种方法的利弊是什么?
正如krokodilko在其评论中所写,这取决于您所需的灵活性水平。 我已经为我的一个客户实现了基于角色的权限,如下所示:
但是我的要求是要尽可能地灵活,并且该系统仍在不断发展(6年且不断增长)。
我猜很多应用程序都可以使用户扮演一对多的关系,而不是像我这种情况下的多对多关系,但是我不会在任何应用程序中对权限或角色进行硬编码。