当前位置:Gxlcms > PHP教程 > PHP-后台权限管理设计问题

PHP-后台权限管理设计问题

时间:2021-07-01 10:21:17 帮助过:4人阅读

有没有哪位大哥做过后台权限管理这个模块的?能否给我说下你的设计思路?有文档给我看看也行(我也在网上找了资料,才来提问的,不要让我自行百度好吗?心塞...)

我是这么想的,有三张表,管理员表管理组表规则表

  1. <code>管理员表(members)
  2. m_id m_name m_passw m_groupid
  3. 管理员ID 用户名 密码 管理所对应的管理组ID
  4. 规则表(rules)
  5. r_id r_name r_method r_status
  6. 规则ID 规则名 控制器名/方法名 状态
  7. 管理组(group)
  8. g_id g_name g_content
  9. 组ID 组名 组权限(包含这一组所有的规则ID)</code>

如上面代码里的,我觉得三张表就可以应付了,为什么我看到网上有6、7张表,之多,中间有关联表映射表什么的东西,我想知道,这么多表具体有什么作用呢?实际操作起来(操作数据库)还很复杂,如果是必须,具体作用是什么?求解答疑惑

回复内容:

有没有哪位大哥做过后台权限管理这个模块的?能否给我说下你的设计思路?有文档给我看看也行(我也在网上找了资料,才来提问的,不要让我自行百度好吗?心塞...)

我是这么想的,有三张表,管理员表管理组表规则表

  1. <code>管理员表(members)
  2. m_id m_name m_passw m_groupid
  3. 管理员ID 用户名 密码 管理所对应的管理组ID
  4. 规则表(rules)
  5. r_id r_name r_method r_status
  6. 规则ID 规则名 控制器名/方法名 状态
  7. 管理组(group)
  8. g_id g_name g_content
  9. 组ID 组名 组权限(包含这一组所有的规则ID)</code>

如上面代码里的,我觉得三张表就可以应付了,为什么我看到网上有6、7张表,之多,中间有关联表映射表什么的东西,我想知道,这么多表具体有什么作用呢?实际操作起来(操作数据库)还很复杂,如果是必须,具体作用是什么?求解答疑惑

你可以看一下PHPCMS的权限设计

常见的设计方式RBAC:
设计思路:通过对当前访问URI进行权限鉴定
数据结构:

  1. <code>表1:权限表,用于存放所有的访问URI
  2. 表2:权限组表,存权限组拥有访问权限的URI的id
  3. 表2:权限组,权限组对应有哪些用户
  4. </code>

大致就是这么个思路

在你的基础上补充一下,你后台应该有一张后台菜单目录表,表里面记录了具体菜单名称对应的控制器方法名信息,权限规则表里把存控制器信息字段可以改成存菜单ID,多个可以逗号隔开。

一张用户表(必须字段gourpid 记录该属于用户组id), 一张用户组表(必须字段node,用来记录菜单表id,用逗号隔开记录),一张后台菜单表(用来记录菜单的url,也用于后台菜单遍历出菜单)。 用户登陆时,查询该用户属于哪个用户组,取出用户组的node,然后用node查出菜单遍历出菜单,也可以做相应的权限

  1. 可以看一下 YII2 的权限设计,每个用户可以对应多个角色,不同角色可以设置不同的权限:http://www.yiichina.com/doc/guide/2.0/security-authorization

  2. 或者参考一下discuz的权限设置

人气教程排行