最经典用户权限管理模块设计
权限管理系统模块设计

权限管理模块设计说明书摘要权限管理分为两个部分,操作权限管理和资源权限管理。
针对我们的系统,分别进行说明。
一、操作权限管理即为允许用户使用那些功能,进行哪些操作。
有两个地方需要处理,1、对用户隐藏没有授权的功能。
如“LOG管理”功能没有对用户A授权,则用户A是看不见“LOG管理”这个功能菜单的。
2、在功能所在的页面进行权限验证,防止没有授权的用户通过输入URL进入功能所在页面。
如“LOG管理”功能没有对用户A授权,则用户A是即使是手动输入“LOG管理”功能所在的页面,他也无法使用这个功能。
在实现方式上可以通过”角色”和”功能”来实现,一个”角色”对应多个”功能”,”用户”与”角色”是多对多的关系。
当用户登录时通过(用户->角色->功能)查询出该用户可以使用的功能列表并显示,无权使用的功能将被隐藏。
并且在功能所在页面进行权限验证,避免没有权限的用户通过特殊方法进入页面。
二、资源权限管理的意思是限制用户对资源的访问和操作。
1、省级的用户可以查看和操作全省的数据。
但不能查看和操作外省的数据。
2、市级的用户可以查看和操作全市的数据,但不能查看和操作该市以外的数据。
3、全国级的用户可以查看和操作全国的数据。
目录1概述 (3)1.1目的 (3)2模块结构描述 (3)3模块功能描述 (3)3.1权限管理 (3)3.1.1功能菜单管理 (3)3.1.2用户管理 (4)3.1.3角色管理 (4)3.2操作权限验证 (5)3.2.1登录验证 (5)3.2.2页面载入验证 (5)3.2.3页面操作权限验证 (6)3.3资源权限验证 (6)4数据库设计ER图 (7)1概述1.1目的权限管理模块是为了对系统权限进行管理和验证。
2模块结构描述3模块功能描述3.1权限管理3.1.1功能菜单管理系统的每个功能都要对应一个功能菜单,功能菜单管理即是对这些菜单项的增删改查管理。
3.1.1.1查询功能菜单输入:功能名称、功能级别、是否已删除输出:功能名称,父功能名称,功能代码,功能级别,功能页面名称,是否已删除。
权限管理模块设计

权限管理模块设计权限管理模块设计是一个用于管理用户对系统资源的访问权限的模块。
在现代软件系统中,用户通常会被分为不同的角色,每个角色被赋予一组特定的权限。
权限管理模块的目标是确保只有授权用户才能访问系统资源,并且确保用户只能访问其被授权的资源。
以下是一个权限管理模块的设计,该设计包括用户管理、角色管理、权限管理和访问控制策略等几个关键方面。
1.用户管理:-用户注册和登录:实现用户的注册和登录功能,用户可以使用用户名和密码进行登录。
2.角色管理:-角色分配给用户:将角色分配给用户,使用户能够从属于一些角色并且获得该角色被授权的权限。
3.权限管理:-权限定义:管理员可以定义系统内的所有权限,并将权限分配给相应的角色。
4.访问控制策略:-基于角色的访问控制:根据用户所属的角色来控制用户对系统资源的访问权限。
不同角色有不同的权限,一些资源只能由特定角色访问。
-细粒度的访问控制:实现对系统资源的详细控制,可以设置每个资源的读取、写入、修改、删除等操作的权限。
5.审计日志:-记录用户的操作:实现用户行为的日志记录,包括登录和注销日志、角色分配和权限修改日志等。
-审计日志的查询:管理员可以查询审计日志来监控用户的操作行为,以及故障排查和安全审计。
6.安全性:-密码安全:用户密码应存储为哈希值,以确保用户密码的安全性。
-数据保护:对敏感数据进行保护,如用户个人信息和权限配置信息等。
以上是权限管理模块的设计,通过合理的用户、角色和权限管理,可以实现对系统资源的细粒度控制和访问权限管理。
这样可以确保只有授权用户才能访问系统资源,并且使管理员能够对用户的行为进行监控和审计。
这种设计有助于提高系统的安全性和可靠性。
系统权限模块设计(ps:有图有真相!)

系统权限模块设计(ps:有图有真相!)在百度百科里查到了权限管理系统的定义:引用权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。
权限管理几乎出现在任何系统里面,只要有用户和密码的系统。
任何一个系统都有对应的权限管理模块,比较粗糙的系统是在开发的时候就定义了哪些类型的用户拥有某些权限,在开发过程中就把权限给定死了;有的则是通过模糊匹配url来进行权限的控制,但是这些日后维护起来会比较麻烦,可能还有其他很多种方式来进行权限的管理,但是不管通过何种方式,其目的都是为了能够安全、灵活、方便的操作,而且还不能影响系统性能。
以下是我自己开发的后台管理系统的权限模块,分享一下我设计的权限模块的开发思路:后台管理系统是基于Spring + struts2.0 + hibernate + Ext 3.2.1架构开发的,因为前台主要是以Ext为主,所以权限模块也是在围绕Ext树进行设计的。
使用Ext开发过的同学都知道Ext.tree.TreePanel 的节点是由Ext.tree.TreeNode定义的,其中Ext.tree.TreeNode中有个href属性,接下来的权限控制就是围绕这个href进行控制的。
先来看看数据模型:从模型中可以看到权限表引用了菜单管理这张表,扩展这张权限表的目的是为了更灵活的对权限进行管理,而不单单只是围绕菜单树,然后通过权限关联表进行角色权限的维护。
在找百度百科看看权限管理的分类引用权限管理分类从控制力度来看,可以将权限管理分为两大类:1,功能级权限管理;2,数据级权限管理。
从控制方向来看,也可以将权限管理分为两大类:1,从系统获取数据,比如查询订单、查询客户资料;2,向系统提交数据,比如删除订单、修改客户资料。
接下来进入权限模块的开发阶段,系统是根据角色进行权限控制的,在用户登入系统的时候,获取用户的角色信息,然后获取角色的权限信息也就是URI列表保存在session中(ps:权限信息不一定保存在session中,也可以借助第三方存储,比如:memcache),通过过滤器来进行访问控制(判断请求的URI是否在列表当中)。
用户权限管理模块

1.1用户权限管理描述实现用户、角色、权限分配、菜单、部门、级别的管理。
1.1.1用户管理描述提供了新建、编辑、查看用户和根据条件查询筛选特定用户的功能。
操作步骤1新建用户登录系统后,点击“用户权限管理”下的“用户管理”,出现如图3-4页面。
(图3-4)在该页面上点击“新建用户”,出现如图3-5的页面。
(图3-5)在该页面上输入员工编号、姓名、密码、确认密码、出生年月、身份证号、现在住址、手机、家庭电话、工作电话、短号、电子邮件、MSN、加入公司时间、合同到期时间、描述,以及选择性别、所属部门、状态直接上级以及为其分配初始角色后点击“提交”即可。
也可点击“返回”不进行操作。
其中带“*”为必填项。
2编辑用户在如图3-4页面上点击“编辑”,出现如图3-6的界面。
(图3-6)在该页面上对用户信息进行编辑后,点击“提交”,完成修改。
也可点击“返回”不进行编辑。
3查看用户信息在如图3-20页面上点击“查看”,出现如图3-7的界面。
(图3-7)4查询用户用户可以在如图3-4的页面上输入工号、姓名、所在部门、性别、状态、加入公司时间、合同到期时间中的一个或多个条件后,点击“查询”。
如:查找姓名为“袁坤毅”的用户,结果如图3-8:(图3-8)5筛选数据列用户可以选取感兴趣的列显示,如图3-9。
(图3-9)1.1.2角色管理描述提供了新建角色、编辑角色等功能。
操作步骤1新建角色登录系统后,点击“用户权限管理”下的“角色管理”,出现如图3-10页面,在该页面上点击“新建角色”。
(图3-10)出现图3-11的页面。
(图3-11)然后,在该页面中输入角色名、角色描述;以及选择状态、权限、菜单后点击“提交”即可。
其中角色名为必填项,状态有“激活”和“停用”两种。
只有当状态为“激活”的角色才是可用的。
权限分配决定了拥有该角色的用户登陆系统后所能进行的操作,菜单分配决定了用户登陆系统后所能浏览到的菜单。
2编辑角色与查看角色登录系统后,点击“用户权限管理”下的“角色管理”,出现如图3-12页面,在该页面上点击“编辑”或“查看”。
用户权限管理数据库设计(RBAC)

⽤户权限管理数据库设计(RBAC) RBAC(Role-Based Access Control,基于⾓⾊的访问控制),就是⽤户通过⾓⾊与权限进⾏关联。
简单地说,⼀个⽤户拥有若⼲⾓⾊,每⼀个⾓⾊拥有若⼲权限。
这样,就构造成“⽤户-⾓⾊-权限”的授权模型。
在这种模型中,⽤户与⾓⾊之间,⾓⾊与权限之间,⼀般者是多对多的关系。
(如下图) ⾓⾊是什么?可以理解为⼀定数量的权限的集合,权限的载体。
例如:⼀个论坛系统,“超级管理员”、“版主”都是⾓⾊。
版主可管理版内的帖⼦、可管理版内的⽤户等,这些是权限。
要给某个⽤户授予这些权限,不需要直接将权限授予⽤户,可将“版主”这个⾓⾊赋予该⽤户。
当⽤户的数量⾮常⼤时,要给系统每个⽤户逐⼀授权(授⾓⾊),是件⾮常烦琐的事情。
这时,就需要给⽤户分组,每个⽤户组内有多个⽤户。
除了可给⽤户授权外,还可以给⽤户组授权。
这样⼀来,⽤户拥有的所有权限,就是⽤户个⼈拥有的权限与该⽤户所在⽤户组拥有的权限之和。
(下图为⽤户组、⽤户与⾓⾊三者的关联关系) 在应⽤系统中,权限表现成什么?对功能模块的操作,对上传⽂件的删改,菜单的访问,甚⾄页⾯上某个按钮、某个图⽚的可见性控制,都可属于权限的范畴。
有些权限设计,会把功能操作作为⼀类,⽽把⽂件、菜单、页⾯元素等作为另⼀类,这样构成“⽤户-⾓⾊-权限-资源”的授权模型。
⽽在做数据表建模时,可把功能操作和资源统⼀管理,也就是都直接与权限表进⾏关联,这样可能更具便捷性和易扩展性。
(见下图) 请留意权限表中有⼀列“权限类型”,我们根据它的取值来区分是哪⼀类权限,如“MENU”表⽰菜单的访问权限、“OPERATION”表⽰功能模块的操作权限、“FILE”表⽰⽂件的修改权限、“ELEMENT”表⽰页⾯元素的可见性控制等。
这样设计的好处有⼆。
其⼀,不需要区分哪些是权限操作,哪些是资源,(实际上,有时候也不好区分,如菜单,把它理解为资源呢还是功能模块权限呢?)。
最经典的用户权限管理模块设计讲课教案

实现业务系统中的用户权限管理--设计篇B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。
因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。
下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。
需求陈述?不同职责的人员,对于系统操作的权限应该是不同的。
优秀的业务系统,这是最基本的功能。
?可以对“组”进行权限分配。
对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。
所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。
?权限管理系统应该是可扩展的。
它应该可以加入到任何带有权限管理功能的系统中。
就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。
?满足业务系统中的功能权限。
传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。
关于设计借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。
为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。
我们先来分析一下数据库结构:首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。
最经典的用户权限管理模块设计

最经典的用户权限管理模块设计实现业务系统中的用户权限管理--设计篇B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。
因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。
下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。
需求陈述∙不同职责的人员,对于系统操作的权限应该是不同的。
优秀的业务系统,这是最基本的功能。
∙可以对“组”进行权限分配。
对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。
所以,系统中就提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。
∙权限管理系统应该是可扩展的。
它应该可以加入到任何带有权限管理功能的系统中。
就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。
∙满足业务系统中的功能权限。
传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。
关于设计借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。
为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。
我们先来分析一下数据库结构:首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。
用户管理模块设计

用户管理模块设计一、用户注册与登录用户管理模块首先需要提供用户注册与登录的功能。
用户可以通过注册账号的方式成为网站或系统的用户,并使用注册的账号进行登录。
在注册时,需要收集用户的基本信息,如姓名、邮箱、手机号等,并进行必要的验证。
登录时,用户需要输入用户名和密码,系统需要进行密码的验证,以确保用户的身份安全。
二、用户信息管理用户信息管理功能是用户管理模块的核心部分之一。
系统需要提供查看、修改、更新用户信息的功能。
用户可以在个人信息页面查看自己的基本信息,并进行修改。
系统还应当提供批量更新用户信息的功能,如批量发送邮件、短信等。
三、用户权限管理用户权限管理功能是用户管理模块的重要部分之一。
系统需要提供对不同用户进行权限分配的功能,以确保系统的安全性和数据的保密性。
根据不同的角色和职位,可以为不同的用户分配不同的权限,以限制其对系统的操作范围。
同时,系统还应提供权限的审核和撤销功能,以确保权限分配的正确性和安全性。
四、用户角色管理用户角色管理功能可以帮助管理员快速地进行用户权限的管理。
通过创建不同的角色,如管理员、编辑、普通用户等,可以为不同的角色分配不同的权限,实现批量权限的设置和管理。
同时,系统还应提供角色的查询和修改功能,以适应不同场景下的权限管理需求。
五、用户行为日志用户行为日志功能可以帮助管理员了解用户的操作行为和系统的运行情况。
系统应当记录用户的登录记录、操作记录、浏览记录等,以便进行审计和查询。
管理员可以通过查询日志记录,了解用户的操作行为和系统的运行状况,及时发现异常和问题,保障系统的安全性和稳定性。
六、用户密码重置用户密码重置功能是为了解决用户忘记密码的情况而设计的。
当用户忘记密码时,可以通过找回密码的方式重新设置密码。
系统可以通过发送邮件或短信验证码的方式验证用户的身份,并提供重设密码的功能。
为了保护用户的隐私和安全,系统应确保密码重置流程的安全性和保密性。
七、用户通知管理用户通知管理功能可以帮助管理员向用户发送各类通知和消息,如系统公告、活动通知、订单提醒等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实现业务系统中的用户权限管理--设计篇
B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。
因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。
下面就让我们一起了解一下如何设计可以满足大部分B/S系统中对用户功能权限控制的权限系统。
需求陈述
•不同职责的人员,对于系统操作的权限应该是不同的。
优秀的业务系统,这是最基本的功能。
•可以对“组”进行权限分配。
对于一个大企业的业务系统来说,如果要求管理员为其下员工逐一分配系统操作权限的话,是件耗时且不够方便
的事情。
所以,系统中就提出了对“组”进行操作的概念,将权限一致
的人员编入同一组,然后对该组进行权限分配。
•权限管理系统应该是可扩展的。
它应该可以加入到任何带有权限管理功能的系统中。
就像是组件一样的可以被不断的重用,而不是每开发一套
管理系统,就要针对权限管理部分进行重新开发。
•满足业务系统中的功能权限。
传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统
之间,功能权限是可以重用的,而资源权限则不能。
关于设计
借助NoahWeb的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。
为了实现需求,数据库的设计可谓及其重要,无论是“组”操作的概念,还是整套权限管理系统的重用性,都在于数据库的设计。
我们先来分析一下数据库结构:
首先,action表(以下简称为“权限表”),gorupmanager表(以下简称为“管理组表”),以及master表(以下简称为“人员表”),是三张实体表,它们依次记录着“权限”的信息,“管理组”的信息和“人员”的信息。
如下图:
这三个表之间的关系是多对多的,一个权限可能同时属于多个管理组,一个管理组中也可能同时包含多个权限。
同样的道理,一个人员可能同时属于多个管理组,而一个管理组中也可能同时包含多个人员。
如下图:
由于这三张表之间存在着多对多的关系,那么它们之间的交互,最好使用另外两张表来完成。
而这两张表起着映射的作用,分别是“actiongroup”表(以下简称“权限映射表”)和“mastergroup”表(以下简称“人员映射表”),前者映射了权限表与管理组表之间的交互。
后者映射了人员表与管理组表之间的交互。
如下图:
另外,还需要一张表来控制系统运行时左侧菜单中的权限分栏,也就是“权限分栏表”,如下图:
根据上面的分析,我们进行数据库结构设计,如下图:
为了能够进行良好的分析,我们将数据库结构图拆分开来,三张实体表的作用已经很清晰,现在我们来看一下两张映射表的作用。
一权限映射表如下图:
首先,我们来了解一下权限映射表与管理组表以及权限表之间的字段关联。
看图中的红圈,先看gorupid字段相关联,这种关联方式在实际数据库中的表现如下图:
如图中所示,管理组表中“超级管理员”的groupid为1,那么权限映射表中groupid为1的权限也就是“超级管理员”所拥有的权限。
使用groupid字段关联,是为了查到一个管理组能够执行的权限有哪些。
但这些权限的详细信息却是action字段关联所查询到的。
action字段相关联在数据库中的表现如下图:
通过这种关联,才查询到权限映射表之中那些权限的详细信息。
综合起来,我们就知道了一个管理组可以执行的权限有哪些,以及这些权限的详细信息是什么。
或许你会问,为什么不使用actionid字段相关联呢?因为:
•权限表中的id字段在经过多次的数据库操作之后可能会发生更改。
•权限映射表中仅仅记录着一个管理组可以执行的权限。
•一旦权限表中的id更改,那么权限映射表中的记录也就更改了。
•一个管理组可以执行的权限势必将出错,这是非常不希望的。
考虑到上面的情况,所以应该使用action字段相关联,因为:
•在权限表中,id可能发生变化,而action字段却是在任何情况下也不可能发生变化的。
•权限映射表中记录的action字段也就不会变。
•一个管理组可以执行的权限就不会出错了。
二人员映射表如下图:
我们来了解一下人员映射表与管理组表以及人员表之间的字段关联,如下图:
看图中的红圈部分,先看groupid字段关联,这种关联方式在数据库中的表现如下图:
如图,“超级管理员”组的groupid为1,我们再看人员映射表,admin属于超级管理员组,而administrator属于超级管理员组,同时也属于管理员组。
使用这种关联方式,是为了查到一个管理组中的人员有谁。
和上面一样,人员的详细信息是靠id字段(人员映射表中是masterid字段)关联查询到的。
id字段(人员映射表中是masterid字段)关联表现在数据库中的形式如下图:
一个人员可能同时属于多个“管理组”,如图中,administrator就同时属于两个“管理组”。
所以,在人员映射表中关于administrator的记录就会是
两条。
这种关联方式才查询到管理组中人员的详细信息有哪些。
综合起来,才可以知道一个管理组中的人员有谁,以及这个人员的详细信息。
再结合上面谈到的权限表和权限映射表,就实现了需求中的“组”操作,如下图:
其实,管理组表中仅仅记录着组的基本信息,如名称,组id等等。
至于一个组中人员的详细信息,以及该组能够执行的权限的详细信息,都记录在人员表和权限表中。
两张映射表才真正记录着一个组有哪些人员,能够执行哪些权限。
通过两张映射表的衔接,三张实体表之间的交互才得以实现,从而完成了需求中提到的“组”操作。
我们再来看一下权限分栏表与权限表之间的交互。
这两张表之间的字段关联如下图:
两张表使用了actioncolumnid字段相关联,这种关联方式在数据库中的表现如下图:
如图所示,通过这种关联方式,我们可以非常清晰的看到权限表中的权限属于哪个分栏。
现在,数据库结构已经很清晰了,分配权限的功能以及“组”操作都已经实现。
下面我们再来分析一下需求中提到的关于权限管理系统的重用性问题。
为什么使用这种数据库设计方式搭建起来的系统可以重用呢?
•三张实体表中记录着系统中的三个决定性元素。
“权限”,“组”和“人”。
而这三种元素可以任意添加,彼此之间不受影响。
无论是那种类型的业务系统,这三个决定性元素是不会变的,也就意味着结构上不会变,而变的仅仅是数据。
•两张映射表中记录着三个元素之间的关系。
但这些关系完全是人为创建的,需要变化的时候,只是对数据库中的记录进行操作,无需改动结
构。
•权限分栏表中记录着系统使用时显示的分栏。
无论是要添加分栏,修改分栏还是减少分栏,也只不过是操作记录而已。
综上所述,这样设计数据库,系统是完全可以重用的,并且经受得住“变更”考验的。
总结:
此套系统的重点在于,三张实体表牢牢地抓住了系统的核心成分,而两张映射表完美地映射出三张实体表之间的交互。
其难点在于,理解映射表的工作,它记录着关系,并且实现了“组”操作的概念。
而系统总体的设计是本着
可以在不同的MIS系统中“重用”来满足不同系统的功能权限设置。
附录:
权限管理系统数据表的字段设计
下面我们来看看权限管理系统的数据库表设计,共分为六张表,如下图:
action表:
action表中记录着系统中所有的动作,以及动作相关描述。
actioncolumn表:
actioncolumn表中记录着动作的分栏,系统运行时,左侧菜单栏提供了几块不同的功能,每一块就是一个分栏,每添加一个分栏,该表中的记录就会增加一条,相对应的,左侧菜单栏中也会新增机一个栏。
actiongroup表:
actiongroup表记录着动作所在的组。
groupmanager表:
groupmanager表记录着管理组的相关信息,每添加一个管理组,这里的记录就会增加一条。
mastergroup表:
mastergroup表记录着管理员所在的管理组,由于一名管理员可能同同时属于多个组,所以该表中关于某一名管理员的记录可能有多条。
master表:
master表记录着所有管理员的信息,每添加一个管理员,该表就会增加一条记录。