Springmvc+Shiro+zTree 实战(一):数据库表格设计

shiro实现粗细粒度权限控制一:表格设计

 

一:表格设计(一个用户对应一个系统角色,一个系统角色具有多个操作权限)

 

分析本系统中 用户、角色、权限之间关系:

一个用户对应一个角色(一对一关系)  tip:也可以设计成一对多

一个角色可以有多个权限,一个权限也可以被多个用户拥有(多对多)

 

一对一关系使用外键关联

多对多关系使用中间表关联

 

用户表:user

列描述 列名 类型 是否主键 备注
主键 id int 自增主键
用户名 user_name varchar 用户名称
昵称 nick_name varchar 用户昵称
密码 password varchar 用户密码
角色ID role_id int 外键:用户绑定的角色ID

角色表:role

列描述 列名 类型 是否主键 备注
主键 id int 自增主键
角色名 role_name varchar 角色名称
角色描述 role_desc varchar 角色描述

角色权限表:role_permission

列描述 列名 类型 是否主键 备注
角色ID role_id int 外键:角色ID
权限ID perm_id int 外键:权限ID

 

权限表:permission

列描述 列名 类型 是否主键 备注
主键 id int 主键
权限标识 perm_token varchar shiro通过保存该属性集合做权限控制
权限名称 perm_desc varchar 权限名称用于zTree显示
父级权限ID parent_id int 父权限ID
几级权限 level int 通过level来实现zTree的自定义图片功能

因为权限表格相比较有点难理解,下面列出一些数据案例,并简单描述一下:

表格数据案例:

Springmvc+Shiro+zTree 实战(一):数据库表格设计

level属性介绍:

0 :顶部父节点

1:左侧菜单栏的父节点

2:左侧出菜单栏的子节点

3:用于细粒度权限控制

左侧菜单栏展示:

Springmvc+Shiro+zTree 实战(一):数据库表格设计

zTree展示:

Springmvc+Shiro+zTree 实战(一):数据库表格设计

 

下一节:实现系统角色管理模块