00:02
然后呢,下边我们来说说这个这个数据库表哈,它如果这个各种模型的话,它建表的话会怎么个建法。呃,最基本的RBC模型的话,你看我们这有个用户表。哎,你看这个用户ID和用户名,这是个角色表,角色的ID和角色的名,权限的表,这个是权限的ID和这个权限标识之类的啊,这三个保存数据的表,然后这两个表呢,是保存他们的关联关系。你看这个FK就是外键嘛,啊,这是外键。哎,外建去进行这个关联。这哈,这分开哈,哎,这是个外界,这是用户角色关联表,把这两个关联起来,这是角色权限关联表,把它和它关联起来啊,所以这是最基本的一个。这是最基本这三个概念是五个表啊,三个概念,这是五个表。然后呢,如果我们扩展的话,这个图这个这个猛一看这个很吓人哈,但其实呢,我们没关系啊,就看的时候呢,咱们先看这段了。
01:08
这这这边这个你先别看哈,你先不要看哈。我给你涂点哈。你看这是用户表。这个是角色表。角色表,哎,嗯,还是跟刚才一样的用户表和角色表。然后呢?嗯。换个颜色,这是用户角色关联表,这也是和刚才一样的,把他俩关联起来。就区别在哪呢,区别就在于啊,我角色呢这边。又划分了角色用户组,这不就等于说RBCR里边的这个角色的继承?哎,这个组继承了这个角色的这个权限,这个每一组呢,具体来说它又有多有又有一些别的权限。然后呢,组里边呢,组和这个角色是怎么关联的呢?用用户组角色关联表把他俩关联起来。用户组和用户怎么关联的呢?要靠这个表啊,把它关联起来啊,就这这这一块就指的是这个意思。
02:06
这个时候呢,有了这个以后吧,用户呢。你可以给他就分配一个角色。啊,就是按按这个关联关系,它就只有角色,按这个关联关系呢,它还有用户组,那么实际上系统运行的时候,既要看它所属的他所在组哈,还得去看他这个角色,把他们能做的事合并在一起,就是这个用户能做的事。哎,然后呢,这回咱们再看这版了哈。把这边去掉。不用看这边啊。这边这个图有点那个放不下了哈。看这边哈。嗯,你看这是我们权限表。权限表。权限表。哎,这边还是角色权限关联表,把他俩关联起来诶。再然后呢,这边哈,有一个功能操作表。这个是我们要做的功能。哎,权限操作关联表,就是这个时候,这个表呢,把功能和权限呢给关联起来。
03:05
所以说你看要说的话,这不就是咱们前面说的资源。然后还有呢,你看有文件表和权限关联。页面元素和权限关联,菜单和权限关联,所以说呢,剩下这一边儿这些哈,我们圈住的这些就是我们前面说的资源。哎,就是我们第一个概念,四个概念里边第一个资源,资源详细的去分的话,可以有菜单啦,页面元素啦,文件啦,功能啦,啊就是可以这样再去细分,然后细分出来这每一个跟权限关联,就是再有一个关联的表。啊,所以这么一说的话,其实这个表也没有什么了不起的。啊,也可以,也也也不难理解。诶,而且呢,其实你也不要担心啊,咱们不按这个做。按这个做,按这个做好家伙要按RBAC3模型做的话。哎呀,我去这个咱们分布式那部分就别做了啊,咱们往后这一块就全都说权限了啊,但是权限这个东西呢,在我们实际开发来说吧。
04:07
并不是一个,呃,怎么说呢,嗯。它并不是一个特别就是需,就是说这个做这功能吧,也不能说公司里边不做,但是做这个确实也不是特别多。啊,你想现在呃,这个这个权限吧,有可能呢,你去参加一个项目哈,人家可能以前公司以前开发的这个东西,另外一个项目,A项目的权限部分拿到B项目里边,这个直接就用了。B项目可能稍微改改就用了,很少说这个再重新开发一遍,再然后呢,如果我们开发的互联网项目,他这个用户呢,他也不是很复杂啊,你就是就是普通用户过来这边买东西什么的,他不是很复杂啊,所以这个权限呢,不是说这个死乞白咧的,非得说你必须会哈,不是那种。
05:02
哎,就是我我这个人特别的诚实啊,我我我我从来不用说这个,我就逼着大家说你这个必须会啊,说你这个,嗯,为了说让你努力的去学,然后告诉你说哪个都重要。哪个都重要。其实恰恰就是。哪个都不重要。哎,所以说呢,我不重要,我就实话实话实说的告诉你不重要啊,然后呢,然后这个我如果说这个东西重要,我就实实在在告诉你重要,而且我可以告诉大家。判断一个技术重要不重要的这个标准哈。就像你盖盖房一样。有这个有的技术是打地基的。有的技术呢,是这样的,这个房子里边的柱子。有的技术是上面这个大梁。那么你想盖房的话,这个地基,这个柱子,这个打梁。这是不是都很重要啊?没有这个你就房子没有一个整体的一个骨架,然后呢,你说这边垒砖吧,一块一块这个垒砖呢,垒砖也不能说不垒砖吧,但是相对于从对比来说,这个垒砖的重要性,它没有这个栋梁基础的重要性。
06:13
然后再再往说这个屋子里边的摆设,你在这放一个花瓶。哎,这有一朵花儿。诶。呃,这朵花花呢,对屋子里边来说,有它也行,没有它也行,对吧啊。哎,郭德纲说,于谦生啊,在我心里边的分量就像天上的星星一样啊。啊,于谦很高兴,说我在你心里边那么那么明亮,那么璀璨呀。郭德纲说,呃,多一个少一个看不出来啊,有你没你就那么回事啊,这种摆设摆设,那就是有的话也挺好,没有的话也就那么着。有的技术就属于这一类的。所以说呢,你去想一想,什么东西属于这个基础动量。SSM。
07:00
他是不是栋梁之才?对吧,我们Java SE。哎,是不是也是是吧,哎,你像我们。嗯,Web里边呢,你要说web里边吧,其实真正地基的话是这个东西。哎,还有你像这个serve,因为serve里边包括我们请求转发重新箱呀,对吧,它包括什么呃。这些东西包括路径问题是吧,字符乱码问题等等啊。这些东西你包括我们像JA web3大件是吧。哎,然后这个listener。这些东西吧,其实都算,我们也都可以算栋梁之才。但是什么东西就像垒砖的东西呢?GSP。幺八的是GS条。这些东西呢,就是我们当时用一下,如果不用GSP的话,E表达式和GS条就是不用。对吧,哎,这个东西就是这这一类的,还有。
08:00
呃。你像咱们说的这个layer这个东西吧,咱们说弹框的这个小小玩意儿哈,他就是个像这种摆设一样,有就好一点没有,其实我缺了你,我也不可能说项目跑不起来。然后你像这个妹妹。它也是基础。没有他的话,我们底层这个价包的话自己管,这是不可想象的。啊,这也属于基础。哎,想有将来我们要学的。你像spring boot。Spring cloud对吧?这个像,呃。Doubleper这样的东西。就类似这样的哈。哎,你没有这一类的东西,这这两套至少要有一套我们才能做分布式,没有这两个里边你都没有,就没办法做分布式啊。再然后呢,你像这个,嗯。你像我们Linux啊,我们Linux学的这些命令,你没有Linux学的这些命令,你在上面就没办法装那些程序。
09:05
对吧,哎,所以说这个技术呢,其实你自己啊,大体上你也是能够去分清楚啊,它的这个呃轻重。那么我们为啥后边还要去去讲,带着大家去做一部分这个权限的东西呢?咱们做一部分,咱们不按最复杂这个,咱们按最简单的这个,咱们去做,做这么一套。这个呢,其实主要呢,还是练什么呢,把SSM练一练。把我们的这个逻辑逻辑啊逻辑。把这个东西练一练,这个这个呢,比这个技术本身其实还重要。啊还重要,所以说呢。呃,所以说你这个时候呢,要体会这个项目。是怎么开发出来的,怎么根据需求去实现这个功能?然后这个技术呢,这个技术就不是那种死乞白咧的啊,说非得要你会说它的优先级并不是最高的啊,就相比较来讲,你SSM。
10:02
这个优先级肯定就比这个优先级要高啊,我们后边会学一个咱们做权限验证呢,咱们用spring security来做spring security它的重要性那肯定没有SM重要性高。啊,什么事,你对比才能知道谁优先级高谁优先级低啊。
我来说两句