RBAC数据表设计

RBAC数据表设计

三表:用户表、角色表、权限表,用户表基本一开始就存在

用户表中有一个字段必须为:role_id与角色表进行关联

角色表

表名:role

序号 字段 类型 说明 默认值 主键
1 id int 自增主键 N N/A
2 role_name varchar(20) 角色名称,如:超级管理员 N
3 auth_ids text 权限表主键id集合,如:1,2,3 Y
auth_ac text 权限对应的控制器方法集合,如:indexController@index Y

auth_ac: a表示action,c表示Controller

权限表

表名:auth

序号 字段 类型 说明 默认 主键
1 id int 自增主键 N N/A
2 auth_name varchar(20) 权限名称 N
3 controller varchar(40) 不带后缀的权限对应的控制器文件名 Y
4 action varchar(30) 权限对应的方法名称 Y
5 pid tinyint 父级权限id(2级权限),0表示顶级权限 N 0
6 is_nav enum([1,2]) 是否作为菜单显示,1=是,2=否 N 1
  1. 创建迁移文件

    php artisan make:migration create_role_table
    php artisan make:migration create_auth_table
    

三表之间的关系

用户表-角色表:

用户表.role_id = 角色表.id

角色表与权限表:

角色表.auth_ids可以有多个权限表.id

注意:

用户表与权限没有直接的关系,这里只有通过角色进行赋予权限,然后根据用户的角色进行权限判断

你可能感兴趣的:(RBAC数据表设计)