权限管理数据库设计

 

权限管理数据库设计

 

在开发过程当中,权限管理是不可或缺的一个模块,用户在系统中可使用的模块和操作都需要权限管理来控制。最近正好在做权限管理这个模块,所以就对于权限管理的数据库设计做个小结,本文纯属个人观点。

一、用户表

用户表是肯定需要的,并且在用户表中需要有个唯一标识,可以是主键,在多主键的情况下可以加个自增列或者GUID来做唯一标识。


是否主键 列名 类型 描述 是否可空 备注
USERNAME VARCHAR(20) 用户名  
PASSWORD VARCHAR(20) 密码  

二、角色表

角色表可以设计成树形结构,这样就可以对角色进行分组。

 

是否主键 列名 类型 描述 是否可空 备注
ROLEID INT 角色编号 自增列
ROLENAME VARCHAR(20) 角色名称  
PARENTID INT 父角色编号  

三、用户角色表

关联用户表和角色表的中间表。

是否主键 列名 类型 描述 是否可空 备注
USERNAME VARCHAR(20) 用户名 用户表中USERNAME的外键
ROLEID INT 角色编号 角色表中ROLEID的外键

四、模块表

模块包含子模块和父模块,这里也可以做成树形表。

是否主键 列名 类型 描述 是否可空 备注
MODULE_TAG VARCHAR(7) 模块标识  
MODULE_NAME VARCHAR(50) 模块中文名称  
MODULE_EN VARCHAR(50) 模块英文名称  
MODULE_HREF VARCHAR(100) 模块链接  
MODULE_ICO VARCHAR(100) 模块图标路径  
MODULE_PARENT_TAG VARCHAR(7) 父模块标识  
MODULE_FLAG BIT 模块停用标识 默认值为0,0可用,1不可用

五、模块权限表

一个模块中包含多个权限,个人感觉权限中加个父权限会比较直观,实际用途有待研究。

是否主键 列名 类型 描述 是否可空 备注
PERMISSION_TAG VARCHAR(7) 权限标识  
MODULE_TAG VARCHAR(7) 模块标识  
PERMISSION_NAME VARCHAR(50) 权限中文名称  
PERMISSION_EN VARCHAR(50) 权限英文名称  
PERMISSION_PARENT_TAG VARCHAR(7) 父权限标识  
PERMISSION_FLAG BIT 权限停用标识 默认值为0,0为可用,1为不可用

六、角色权限表

角色和权限是多对多关系,所以要建张中间表。这张表决定用户的最大权限,具体拥有什么权限由用户权限表决定。

是否主键 列名 类型 描述 是否可空 备注
ROLEID INT 角色编号 角色表中ROLEID的外键
PERMISSION_TAG VARCHAR(7) 权限标识 权限模块表中PERMISSION_TAG的外键

七、用户权限表

用户和权限是多对多关系,所以要建张中间表。用户权限由这张表决定。

是否主键 列名 类型 描述 是否可空 备注
USERNAME VARCHAR(20) 用户名 用户表中USERNAME的外键
PERMISSION_TAG VARCHAR(7) 权限标识 权限模块表中PERMISSION_TAG的外键

小结:模块和权限归到一起,拥有该模块中的任何一个权限就能使用该模块,由于角色表是树形结构,所以可以划分用户组,然后给予不同角色的用户不同的最大权限,具体权限由用户权限表里决定。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值