开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):权限管理-表结构和关系】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11525
权限管理-表结构和关系
目录:
一、基本需求
二、关系
一、基本需求
来到资料,有一个数据库脚本,打开,有多张表,现在数据库创建出来,一共有以下五张表:
1.acl permission
这是一个菜单表,pid 为1,就是一种树形结构,用来存储信息,
2.acl role
这是一个角色表
3.acl role pegmission
这是角色和菜单的关系表
4.acl user
这是一个用户表
5.acl user role
这是用户和角色的关系表
以上五张表可以做到完善的管理功能。
二、关系
先做三张表格,包括菜单表 acl permission,角色表 acl role,用户表 acl user。
角色和菜单表之间是有关系的,表表之间的关系,要么一对一,要么一对多,要么多对多这三种关系,一对一对多。
做得多,菜单跟角色之间这种关系,是一个多对多的关系,也就是说,一个菜单它可以有很多的角色,然后一个角色是不能访问很多菜单,比如管理员能访问讲师管理也可能访客管理,测试人员也可能去访客户管理。所以这个关系是一个多对多的关系。
角色和用户也是一个多对多的关系,也就是一个角色中可以有很多用户,然后管理员里边可以和 Lucy 也可以和 Mary联系。
一个用户也可以有很多角色,假如 Mary 它既是管理员又是测试员,所以这个是多对多的关系,也就是说,菜单、角色、用户,他们之间都是多对多的关系。
再做两张表格,它包括菜单角色关系表 acl role pegmission 和角色用户关系表 acl user role。
这就是以上表的结构和关系。