新的权限架构所对应的数据库中的五个表的设计

上文讲了新设计的权限架构的细节,下面将与之相关的数据库四个表的表结构与字段定义列一下:

表一:rdApplications

1. 干嘛的

这个表存的是所有系统的字典。

2. 表结构
字段名 类型 含义
tln_sid int(11) 此条记录的SID
tlnAppName varchar(50) 系统应用的名称
tlnIsFrozen tinyint(1) 系统应用是否被冻结
tlnLastModifiedTime timestamp 记录最新更新时间

表二:rdPermissionDictionary

1. 干嘛的

这个表是用来存储所有权限信息的字典。

2. 表结构
字段名 类型 含义
gpd_sid int(11) 此条记录的SID
gpdAppId int(11) 系统字典表SID
gpdPermissionCode varchar(50) 权限代码
gpdPermissionName varchar(50) 权限名称
gpdFrontEndRoute varchar(100) 对应的前端路由
gpdBackEndRoute varchar(100) 对应的后端路由
gpdIsFrozen tinyint(1) 权限是否被冻结
gpdDisplayOrderRank int(11) 展示时可能的显示顺序
gpdLastModifiedTime timestamp 当前记录最新更新时间

表三:rdRoleDictionary

1. 干嘛的

这个表是用来存储所有角色信息的字典。

2. 表结构
字段名 类型 含义
ghr_sid int(int) 此条记录的SID
ghrRoleName varchar(100) 角色名称
ghrHospitalAreaIdOfRole int(11) 角色所属院区
ghrIsFrozen tinyint(1) 角色是否被冻结
ghrLastModifiedTime timestamp 当前记录最新更新时间

表四:rdRolePermissionMap

1. 干嘛的

这个表是用来存储角色与其所包含权限的映射。

2. 表结构
字段名 类型 含义
grp_sid int(11) 此条记录的SID
grpRoleId int(11) 角色表的角色SID
grpPermissionId int(11) 权限表的权限SID
grpLastModifiedTime timestamp 当前记录最新更新时间

表五:rdUserPermissionDataScope

1. 干嘛的

这个表是用来存储用户甲在权限A下的数据域。

2. 表结构
字段名 类型 含义
tnp_sid int(11) 此条记录的SID
tnpUserId int(11) 用户表的用户SID
tnpPermissionId int(11) 权限表的权限SID
tnpDataScope varchar(1000) 数据域分级存储*,存储的时候就要求按照约定** 使用正则表达式去存储
grpLastModifiedTime timestamp 当前记录最新更新时间

* 数据分级与实体代码事先便定义好,分为[‘院区’, '大科室', '小科室', '医疗组(护理组)', '个人']五个等级,其中院区为最高等级,通俗意义上的医院在系统中仅作为象征存储相关信息,并不参与具体业务层面的逻辑。
** 具体编码格式约定如下:/AABBCCDDEE/ 代表AA院区BB大科室CC小科室DD医疗组下的EE这个用户,如果数据域中存储的是上述代码,那就拥有这个权限的EE用户的数据域;如果登录用户权限比较大,那他可能拥有整的DD医疗组的在这个权限下的数据域,此时数据域代码应该这么写 /^AABBCCDD[0-9]{2}/。注:初老师说全部用数字做 CODE,规则定为:院区3位、大科室2位、小科室2位、医疗组(护理组)2位、个人3位。

你可能感兴趣的:(新的权限架构所对应的数据库中的五个表的设计)