表名:power_role | |||||
字段名 | 数据类型 | 长度 | 主外键 | 字段说明 | 备注 |
id | int | 11 | 主键 | 角色id | 非空 |
admin_create_id | int | 11 | 无 | 管理员id(创建者) | 非空 |
code | varchar | 20 |
| 角色代码 | 非空 |
name | varchar | 20 | 无 | 角色名称 | 非空 |
remark | varchar | 255 | 无 | 备注 | 可为空 |
create_time | timestamp |
| 无 | 创建时间 | 非空 |
modify_time | timestamp |
| 无 | 修改时间 | 可为空 |
相关触发器:无
表名:power_auth | |||||
字段名 | 数据类型 | 长度 | 主外键 | 字段说明 | 备注 |
id | int | 11 | 主键 | 权限id(从100开始) | 非空 |
name | varchar | 50 | 无 | 权限名称 | 非空 |
pid | int | 11 | 无 | 父id | 非空 |
varchar | 100 | 无 | 控制器:操作 | 非空 | |
link | varchar | 100 | 无 | 链接 | 可为空 |
level | int | 1 | 无 | 权限级别,从0开始 | 非空 |
remark | varchar | 255 | 无 | 备注 | 可为空 |
create_time | timestamp |
| 无 | 创建时间 | 非空 |
modify_time | timestamp |
| 无 | 修改时间 | 可为空 |
相关触发器:无
表名:power_admin_login | |||||
字段名 | 数据类型 | 长度 | 主外键 | 字段说明 | 备注 |
id | int | 11 | 主键 | 管理员登录id | 非空 |
admin_id | int | 11 | 无 | 管理员信息id | 非空 |
account | varchar | 50 | 无 | 账号 | 非空 |
password | varchar | 50 | 无 | 密码 | 非空 |
login_num | int | 100 | 无 | 登录次数 | 非空 |
status | varchar | 1 | 无 | 状态0:正常 1:异常 | 非空 |
create_time | timestamp |
| 无 | 创建时间 | 非空 |
modify_time | timestamp |
| 无 | 修改时间 | 可为空 |
相关触发器:无
表名:power_admin_info | |||||
字段名 | 数据类型 | 长度 | 主外键 | 字段说明 | 备注 |
id | int | 11 | 主键 | 管理员信息id | 非空 |
admin_create_id | int | 11 | 无 | 管理员信息id(创建者) | 非空 |
account | varchar | 20 | 无 | 账号 | 非空 |
name | varchar | 20 | 无 | 姓名 | 非空 |
phone | varchar | 32 | 无 | 电话 | 可为空 |
| varchar | 50 | 无 | 邮箱 | 可为空 |
age | int | 3 | 无 | 年龄 | 可为空 |
remark | varchar | 255 | 无 | 备注 | 可为空 |
create_time | timestamp |
| 无 | 创建时间 | 非空 |
modify_time | timestamp |
| 无 | 修改时间 | 可为空 |
相关触发器:无
表名:auth_role | |||||
字段名 | 数据类型 | 长度 | 主外键 | 字段说明 | 备注 |
id | int | 11 | 主键 | 权限分配id | 非空 |
role_id | int | 11 | 无 | 角色id | 非空 |
auth_id | int | 11 | 无 | 权限id | 非空 |
create_time | timestamp |
| 无 | 创建时间 | 非空 |
modify_time | timestamp |
| 无 | 修改时间 | 可为空 |
相关触发器:无
表名:role_admin | |||||
字段名 | 数据类型 | 长度 | 主外键 | 字段说明 | 备注 |
id | int | 11 | 主键 | 角色分配id | 非空 |
role_id | int | 11 | 无 | 角色id | 非空 |
admin_id | int | 11 | 无 | 管理员信息id | 非空 |
create_time | timestamp |
| 无 | 创建时间 | 非空 |
modify_time | timestamp |
| 无 | 修改时间 | 可为空 |
相关触发器:无
如果权限级别只到菜单,可以这样配置:
如果权限级别到具体的操作方法,则可以这样配置:
特别说明:
一般设计数据库思维,是以一个模块一个表来设计,一个模块对应一个控制器。但是往往会出现可能一个模块设计两个或以上功能菜单。而路径往往以控制器名称作为前缀,然后进行通配符匹配判断有无权限。当权限只需要具体到菜单时,可能就会出现问题:
比如CourseController控制器的前缀路径是course,数据库保存的通配符是course:*,这时如果CourseController控制器涉及两个菜单,用户就可能同时具有这两个菜单的权限。
解决方法如下:
控制器方法中,再加上一个前缀路径对应菜单功能,比如:方法中对应不同菜单功能分别以manager,user作为前缀区分@RequestMapping(value="/manager/index"),@RequestMapping(value="/user/index"),控制器对应@RequestMapping(value="/course"),数据库保存的通配符分别为course:manager:*,course:user:*。
当权限具体到方法时,是以方法具体名称为路径,数据库保存的具体的整个路径,不具有通配形式,所以不需要考虑该问题