-
权限设计说明书
一、背景及目的
目前为止,公司项目
中,几乎没有一个统一的权限设计,基本上是根据不同的业务
需求来设计不同的权限。权
限系统应该是一个较通用的系统,统一设计好一个方案
后,后续的项目中统一用此权限系
统,无疑比较省时省力。本文针对系统权限需
求,阐述权限设计应该实现的功能及其详细
的数据库设计。
二、名词解释及术语
?
功能权限:能做什么的问题,如用
户登录系统后,有增加销售订单的功能。
?
数据权限:能在哪里干什么的问题
,如用户登录系统后,只能察看杭州分公司
销售部的销售订单,而不能查看宁波分公司销
售部的销售订单。
?
机构:组织机构,一个公司组织,可以称为一个机构。一个部门组织,也可以
称为机构。机构可大可小。
?
职务:机构下某个用户的职务,这里的职务不和权限挂钩。
?
用户:参与系统活动的主体,这里
的用户指的是用户的基本信息。
?
登录账户:用户登录系统的信息。
?
角色:特定权限的集合。
?
资源:系统中的资源,主要是各种
业务对象,如销售单、付款单等。
?
操作类型:对资源可能的访问方法,如增加、删除、修改等。
?
字段:某个资源下某个操作类型中的某个字段。
?
权限:角色可使用的功能,分角色
的功能权限和角色的数据权限。
三、权限系统应该达到的目的
?
机构和职务是单独的,当用户在某
个机构下,并且用户拥有某个职务时,才认
为机构和职务有关。如:机构下有研发部,职
务中有经理的职务。某个用户在
研发部下,并且该用户的职务为经理,则认为该用户为研
发部经理。
?
一个用户可以同时隶属于多个机构下
?
用户和登录账户可以是一对一的关系,也可以是一对多关系。
?
用户的权限通过角色来控制
,
一个用户可以拥有多个角色,用户信息和角色关
联。
?
用户拥有不同角色时,其权限应该是多个角色相互的补集。
?
角色可以相互继承,但是这里只实
现单继承。一个树结构,基层的角色权限最
少,最里层的分支角色权限最多。
?
一个角色拥有多个资源的操作权限。
?
当某个角色同时和机构、资源发生
关系时,则代表此角色操作资源时,只能操
作一个或多个机构下的数据。
?
当某个角色没有同时和
机构、资源发生关系,则代表此角色操作资源时,可以
操作所有的数据。
?
用户的前台菜单显示根
据角色所拥有的资源所决定,不同的用户在前端显示的
操作菜单是不一样的。
?
页面中的功能按钮根据资源中所包含的操作类型所定义。
?
某个资源下,某个字段的隐藏与否通过字段来定义。
四、权限关系图
机构
机构
用户
职务
职务
机构
用户
职务关系
用户
登录账户
角
色
角色
资源
操作类型
< br>字段
权限关系
字段
操作类型
p>
机构
角色
数据范围权限
资源
资源
注:角色控制权限时,控制到字段级别暂时不实现
五、数据库设计
参数配置表
datadict
(单级数据字典)
序
号
1
2
id
type
ID
变量类型
varchar(50)
Varchar20)
主键
字
段
名
解释
类型长度
备注
3
4
name
sort
变量名称
排序
varchar(50)
int
0
:未启用
5
state
启用状态
tinyint
1
:启用
2
:作废
6
avail
是否被使用
最后一次修改时
间
描述
tinyint
0
:未被使用
1
:已被使用
7
8
edittime
remark
timestamp
varchar(200)
注:
type = educate
为用户表
user
中字段
eduLever
最高学历的配置
type =
org
grade
为机构表
org
中字段
grade
级别的配置
“启用状态”是指业务选择的时候会不会被显示出来以供选择
“是否被使用”是指实际业务中是否已经被引用,被引用
的数据不能删除
未被使用的可以删除,已被使用的只能作废
机构
org
序
号
1
2
3
字
段
名
id
name
parentid
解释
ID
机构名称
上级机构
ID
类型长度
varchar(50)
备注
主键
Varchar(200)
varchar(50)
参数配置表
4
grade
级别
varchar(50)
p>
datadict
主键,指
的是公司级或部
门级
5
6
level
sort
层次
排序
varchar(20)
int
树结构中第几层
同级树机构中,
排列的次序
7
avail
remark
有效
8
描述
0
:未使用
1
:生效
tinyint
2
:作废
3
:删除
Varchar(200)
职务
duty
序
号
1
2
3
字
段
名
id
name
remark
解释
ID
职务名称
描述
类型长度
varchar(50)
Varchar(50)
备注
主键
Varchar(200)
用户
user
序
号
1
2
id
name
ID
真实姓名
varchar(50)
varchar(50)
主键
1
:保密
3
sex
性别
tinyint
2
:女
3
:男
4
5
birth
marry
生日
婚姻状况
timestamp
tinyint
1
:未婚
字
段
名
解释
类型长度
备注
-
-
-
-
-
-
-
-
-
上一篇:数据库表结构说明文档
下一篇:(完整版)大象版小学科学三年级下册实验报告单.doc