设为首页 | 加入收藏

欢迎访问盈彩网app移动下载-盈彩网怎么样-盈彩网时时彩计划

活动预告 >> 小米粥-怎么规划一个完美的权限办理模块
专心于Java领域优质技能,欢迎重视

作者:不哼不哈

咱们比较常见的便是依据人物的拜访操控,用户经过人物与权限进行相关。简略地说,一个用户具有多个人物,一个人物具有多个权限。这样,就构形成“用户-人物-权限”的授权模型。在这种模型中,用户与人物之间、人物与权限之间,一般都是多对多的联系。如下图:

依据这个,得先了解人物究竟是什么?咱们能够了解它为必定数量的权限的调集,是一个权限的载体。

例如:一个论坛的“办理员”、“版主”,它们都是人物。可是所能做的工作是不完全相同的,版主只能办理版内的贴子,用户等,而这些都是归于权限,假如想要给某个用户颁发这些权限,不必直接将权限颁发用户,只需将“版主”这个人物赋予该用户即可。

可是经过上面咱们也发现问题了,假如用户的数量十分大的时分,就需求给体系的每一个用户逐个授权(分配人物),这是件十分繁琐的工作,这时就能够增加一个用户组,每个用户组内有多个用户,除了给单个用户授权外,还能够给用户组授权,这样一来,经过一次授权,就能够一起给多个用户颁发相同的权限,而这时用户的一切权限便是用户个人具有的权限与该用户地点组所具有的权限之和。用户组、用户与人物三者的相相联系如下图:

一般在使用体系里边的权限咱们把它表现为菜单的拜访(页面级)、功用模块的操作(功用级)、文件上传的修正,乃至页面上某个按钮、图片是否可见等等都归于权限的领域。有些权限规划,会把功用操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-人物-权限-资源”的授权模型。而在做数据表建模时,可把功用操作和资源统一办理,也便是都直接与权限表进行相关,这样或许更具快捷性和易扩展性。如下图:

这儿特别需求留意以下权限表中有一列“PowerType(权限类型)”,咱们依据它的取值来区别是哪一类权限,能够把它了解为一个枚举,如“MENU”表明菜单的拜访权限、“OPERATION”表明功用模块的操作权限、“FILE”表明文件的修正权限、“ELEMENT”表明小米粥-怎么规划一个完美的权限办理模块页面元素的可见性操控等。

这样规划的优点有两个:

一、不需求区别哪些是权限操作,哪些是资源,(实际上,有时分也欠好区别,如菜单,把它了解为资源呢仍是功用模块权限呢?);

二、便利扩展,当体系要对新的东西进行权限操控时,我只需求树立一个新的相关表“权限XX相关表”,并确认这类权限的权限类型字符串即可。

需求留意的是,权限表与权限菜单相关表、权限小米粥-怎么规划一个完美的权限办理模块菜单相关表与菜单表都是一对一的联系。(文件、页面权限点、功用操作等同理)。也便是每增加一个菜单,就得一起往这三个表中各刺进一条记载。

这样,能够不需求权限菜单相关表,让权限表与菜单表直接相关,此刻,须在权限表中新增一列用来保存菜单的ID,权限表经过“权限类型”和这个ID来区别是种类型下的哪条记载。最终扩展出来的模型完好规划如下图:

留意上面我额定增加了一个操作日志表;

跟着体系的日益巨大,为了便利办理,假如有需求可引进人物组对人物进行分类办理,跟用户组不同,人物组不参加授权。

例如:当遇到有多个子公司,每个子公司下有多个部分,这是咱们就能够把部分了解为人物,子公司了解为人物组,人物组不参于权限分配。别的,为便利上面各主表本身的办理与查找,可采用树型结构,如菜单树、功用树等,当小米粥-怎么规划一个完美的权限办理模块然这些可不需求参于权限分配。

数据字典:

1.用户表:

2.人物表:

3.用户与人物相关表

4.用户组表

5.用户组与用户信息相关表

6.用户组与王莎莎人物相关表

7.菜单表

8.页面元素表

9.文件表

10.权限表

11.权限与菜单相关表

12.权限与页面元素相关表

13.权限与文件相关表

14.功用操作表

15.权限与功用操作相关表

16.人物与权限相关表

17.操作日志表

cnblogs.com/myindex/p/9116177.html



上一条      下一条
返回顶部