00:01
各位大家好,欢迎继续收看上硅谷视频课程。我们继续来学习spring security,刚才内容中呢,给大家介绍了在我们的微服务架构中,咱们如何使用spring security进行认证和授权,给大家分析了一下它的实验的过程,然后咱们又演示了我们要完成这个权限管理的这么一个案例,里边要实现主要有这么一个功能,那下面呢,咱就把这功能开始做一个实现,实现之前呢,给各位先来说这么几点。我在这里边给大家写一下,首先第一个呢,给大家来介绍一下,我们要实现一个权限管理,里边涉及到这个就是数据的一个模型,也就是说我们要创建肯定有数据库表,然后里边有哪些表,表分别是做什么的,以及表之间有什么关系,所以第一部分给各位介绍一下数据模型,包括把表咱如何创建。
01:05
然后做到之后,我们内容中的第二部分给各位介绍一下,咱们要做这个区间管理案例,里边要涉及到有哪些的技术,把这些技术给各位做过说明,比如说我们里边要用到STEM cloud red等等,这些技术分别用在什么地方,包括怎么用,给各位做个详细说明。然后说完之后第三部分咱就开始做具体实现,我们搭建这么一个项目,然后搭建我们的服务,最终把功能做到,那咱们下面继续来说一下。第一部分介绍一下数据模型,就是咱们做权限管理中要涉及到有哪些表,那各位来说一下啊,就是咱们做一个比较完整的权限管理功能,一般来讲涉及到有这么五张表的操作,那五张表是什么?给各位我来做一个详细的一个介绍。
02:04
那咱们来看一下啊,这里边有五张表,我就这个重新画一下啊,首先里边涉及到的第一张表,我们叫这个菜单表。什么叫菜单表呢?比如说各位注意,我们刚才做这个例子中,当我用户登录在这个位置。是不是显示菜单,所以这个我们要存到数据库中,这是第一张表,我们叫菜单表,然后里边涉及到有第二张表,这个表是什么?他叫角色表,什么叫角色表?假如我现在我的用户可以是管理员,可以是课程管理员,可以是销售人员等等,这个叫角色表,然后除了决策表之外,里边涉及到第三张表就是用户表,因为咱肯定是通过用户进行登录,用户是不是要属于某一个角色,所以里边有三张最基本的表,菜单表。
03:00
角色表,还有用户表,那三个表给各位来画一下,咱们通过一些具体例子再来说一下这个表的作用。首先我先画一个菜单表。比如说在表里边,那就是有它那个ID,还有名称我们画一下啊,比如说我这个菜单它的ID是一,还有这个二。然后菜单里边呢,比如说第一个菜单,就咱说这个讲师。管理这是第一个菜单啊,调的小点啊,然后比如说第二个菜单,我们叫课程管理啊,这是一张菜单表,然后除了它之外,在里边呢,咱还有一个表叫做角色表,那我这里边也画一下,比如现在我这个位置有两个角色。然后他的ID,比如说咱为了区分决赛地,我们是幺幺,这个是幺二,比如说第一个角色就是。
04:01
管理员,比如说第二个角色是这个,比如叫一个销售人员。销售人员,这张是一个角色表,然后除了这个表之外,咱们还有第三张表,那就是一个用户表,我这里边画一个就是用户表,在里边我也是加上两条记录,在以两条为例啊,但是实际中可能有更多条,假如用户的区分,我叫二幺,这个是二二,然后我写两个用户,比如一个叫。Lucy。一个叫Mary,所以这是我们见的三张表,菜单表,角色表,还有用户表,而三张表之间呢,他们要一个关系,什么关系呢?给各位分析一下啊,那家也可以考虑一下,那大家考虑啊,你说角色跟菜单。是什么关系,这两表间是什么关系,因为咱要知道表表之间嘛,外乎三种关系,一对多,一对一,多对多,一对多,多对一啊,咱算是一种关系,所以咱外乎三种关系,那你看啊,角色跟菜单之间,你说他们之间什么关系?
05:16
大家想一下什么关系,其实这个很明显,是不是一个多对多的关系,比如说现在比如说我一个角色能访问多个菜单,一个菜单也可以被多个角色访问,假如我管理员可以访问课程管理,销售人员是不是也可以访问课程管理,所以他们之间是一个多对多的关系,这个要明确,这是一个多对多。他们是这么一个关系,而多对多我们要建表的话,怎么建?按照咱们的建表原则,咱就需要创建一个第三张表来维护它的关系,所以这个位置我们需要再来创建一张表。这个表就是咱说的角色和菜单的关系表。
06:05
这个我们做一个创建,然后在表里边,比如现在我也是给他写上这么几条数据,为了咱们看到。更明显啊,比如说我写上。多条数据,然后这里边这个表怎么来表示呢?各位注意啊,咱们这个多对多的第三张表中的一个原则,它里边呢,至少有两个字段,让两个字段分别指向量表主键,比如第一个我们指向这个菜单的那个ID啊,比如我叫ZID菜单ID嘛,然后这个角色我叫ID,那比如说现在我想做个表示,怎么表示,我想表示这个管理员可以访问讲师管理这个菜单,那里面怎么写,大家注意啊,管理员的角色是不是叫幺幺啊,而讲师管理是不是这个一有,那比如说我管理员还可以访问课程管理,那就是幺幺,这里边加个二,包括你的销售人员可以访问,所以它是一个多对多的关系,咱需要有一个第三张表维护他们的关系。
07:14
这个要明确,这是第三张表,然后这个之外,咱们还有一个关系,就是这个关系。其实跟他一样,你说用户跟角色什么关系。是不是也是多对多呀,就是他也是一个多对多关系,比如现在我的Lucy可以是管理员,是不是也可以是销售人员,就是我这公司,比如说这个人我可以是总经理,是不是也可以是司机,可是保安嘛,比如这公司就我自己,那所有角色都是我,所以这也是一个多对多的关系,所以按照这个建表原则,这里边咱们也需要建一张第三张表,就是里边这个用户。角色的。关系表,那在这里边给各位我来画一下。咱们也是画下这个表,比如说在里边我们这个位置也是按照咱的见表原则,它至少有两个字段,分别指向两个表的主键,比如说这个我们是一个UID指向那个用户ID。
08:18
然后比如说这个是一个ID,指向我们的角色ID,那比如说现在我想做个表示,再来表示一下啊,假如我现在Lucy用户是管理员。大家说怎么表示Lucy ID是多少?是不是二幺啊,管理员是多少?是不是幺幺,假如这Lucy啊,他还是一个销售人员,那就是二幺,然后加上一个幺二,所以这个就是咱们做这个权限管理中的数据模型,里边要涉及到五张表的操作,比如我现在我这里边要怎么做呢?咱后面肯定是添加菜单,添加角色,添加用户,然后你需要为角色分配菜单,也就像这关系表中加数据,假如我为管理员分配讲师管理是不是加校记录,然后我们还要为用户分配角色,那就是像这张表中加数据。
09:15
包括咱们后面要完成的,其实主要就是这么几个功能。就是我写一下啊,第一个就是添加。角色,然后咱要为这个角色。分配菜单,这是第一部分功能,然后除了这一部分功能之外,咱还要实现就是下一个添加用户,然后咱要为用户。来分配这个角色,也就是操作这几张表的这个过程,所以这就是关于权限管理的数据模型。但针对五张表操作,大家把这关系要弄清楚,三张最基本表,菜单角色、用户角色,菜单是多得多,用户角色又是多得多,所以咱们针对多得多创建第三张表,最终维护这么一个关系,包括咱们的案例中就基于这五张表实现咱们最终的一个效果。
10:13
所以这个我们就做了一个说明啊,咱就完成了啊,然后完成之后呢,下面我把这个表在我的数据库中给各位创建出来,然后后面再来进行操作,那我来创建啊,比如现在在里边呢,我先来一个数据库,我就叫ACDB啊,就是权限的这么一个数据库。这个创建,然后在里边写表,这个表呢,我在资料中给各位已经提供出来了,就是里边有五张表的建表语句,各位把我这个建表语句直接复制过来,到里边进行执行就可以了,那我把它复制,然后到里边我们来做一个执行。这里边已经完成了,咱们刷新大家看一下啊,ACLDB中是不是有这么五张表,这五张表就是咱们权限操作中的五张表,我把这个截过来,然后这五张表再来快速浏览遍啊。
11:13
五张表,首先我们看啊,再看第一张表,请看这个表。Al permission,这个表是什么呢?其实就是一个菜单表,比如你的权限管理,用户管理,角色管理,这是第一个表,然后第二个表,这个表用就是角色表,里边是不是有角色,第三个表就是用户表,就是你的用户密码啊,就是密码,做一个MD5加密用户名密码,然后除了它之外,这个表就是角色跟菜单的关系表,包括你看里边是不是两个ID,这是角色ID,这是菜单ID,还有一个用户跟角色的关系表,这是角色ID,这是用户ID,就是咱们刚才说的五张表,所以现在咱就完成了数据模型的讲解,包括这五张表的创建,各位把这关系一定要特别清晰。
我来说两句