1. 基于角色的权限管理介绍(RBAC)
得到一个项目要搞懂两点:
- 首先看懂需求
- 表设计出来
业务:无非就是操作的表不一样,搞清楚往那张表里写,从那张表里读就可以了
基于角色的权限管理至少得四张表
用户表:
多户n ---- 角色1
角色表:
为了分配资源简单化,因此给用户配角色即可以了
角色n ---- 资源n
资源表:
每个功能模块都是一个资源。
产品管理: /sadmin/goodslist
分类管理:还可以更精确到有添加的权限,修改的权限等等,
此时要拓展除一张operation 表来确定/sadmin/goodslist/后面跟什么操作
订单管理:
用户管理:
角色资源关系表(多对多)
数据库字典
用户表
字段名 | 字段类型 | 描述 |
---|---|---|
id | int | 主键Id |
username | varchar | 用户名 |
password | varchar | 密码 |
role_id | int | 是否是超级管理员 1 是 0 否 |
is_admin | int | 外键(role) |
角色表
字段名 | 字段类型 | 描述 |
---|---|---|
id | int | 主键Id |
name | varchar | 用户名 |
status | int | 1启用 2停用 |
资源表 (resource)
字段名 | 字段类型 | 描述 |
---|---|---|
id | int | 主键Id |
name | varchar | 资源名称 |
url | varchar | 跳转 url |
status | int | 1启用 2停用 |
角色资源表 (role_resource)
字段名 | 字段类型 | 描述 |
---|---|---|
id | int | 主键Id |
role | varchar | 外键角色 id |
resource | varchar | 外键资源 id |
外键在python 中大量使用,外键保持数据的完整性, 不是为了建立关联一般都是用代码维护关联关系,其他语言外键效率低(python中做了优化),不建议使用。