shiro数据库表设计

    1. 权限模块(power)
      1. 角色信息(power_role)

表名: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

 

修改时间

可为空

相关触发器:无

      1. 权限(power_auth)

表名:power_auth

字段名

数据类型

长度

主外键

字段说明

备注

id

int

11

主键

权限id(从100开始)

非空

name

varchar

50

权限名称

非空

pid

int

11

父id

非空

controller_operation

varchar

100

控制器:操作

非空

link

varchar

100

链接

可为空

level

int

1

权限级别,从0开始

非空

remark

varchar

255

备注

可为空

create_time

timestamp

 

创建时间

非空

modify_time

timestamp

 

修改时间

可为空

相关触发器:无

      1. 管理员登录(power_admin_login)

表名: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

 

修改时间

可为空

相关触发器:无

      1. 管理员信息(power_admin_info)

表名:power_admin_info

字段名

数据类型

长度

主外键

字段说明

备注

id

int

11

主键

管理员信息id

非空

admin_create_id

int

11

管理员信息id(创建者)

非空

account

varchar

20

账号

非空

name  

varchar

20

姓名

非空

phone

varchar

32

电话

可为空

email

varchar

50

邮箱

可为空

age

int

3

年龄

可为空

remark

varchar

255

备注

可为空

create_time

timestamp

 

创建时间

非空

modify_time

timestamp

 

修改时间

可为空

相关触发器:无

      1. 权限分配(auth_role)

表名:auth_role

字段名

数据类型

长度

主外键

字段说明

备注

id

int

11

主键

权限分配id

非空

role_id

int

11

角色id

非空

auth_id

int

11

权限id

非空

create_time

timestamp

 

创建时间

非空

modify_time

timestamp

 

修改时间

可为空

相关触发器:无

      1. 角色分配(role_admin)

表名: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:*。

当权限具体到方法时,是以方法具体名称为路径,数据库保存的具体的整个路径,不具有通配形式,所以不需要考虑该问题

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值