博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于资源的权限系统-数据库设计
阅读量:7021 次
发布时间:2019-06-28

本文共 1317 字,大约阅读时间需要 4 分钟。

概述

本通用权限管理系统是基于2棵树来做权限管理的,这2棵树就是 资源树组织树

组织+资源+动作 所组成的权限数据就是整个系统的核心。 这里之所以只用组织而不用人员,一方面可以减少权限数据的量,一方面还可以简化权限数据。

每个人员的的权限是可以计算出来的。 人员从属于一个或者多个组织的,默认情况下所有人员都有一个根组织,权限数据为了保持简单,只存储组织的权限。

表结构设计

概略图

img

真正在权限系统中的数据只要 Permission,Rule,Action 3张表就够了。

User,Group,Resource 的数据可以放在权限中,也可以和既有的系统对接,既有的系统提供API,能够让权限访问到User,Group,Resource的信息即可。

表设计

本系统希望最后以服务的形式提供权限管理的功能,所以每张表没有多余的字段,只有权限管理必需的一些字段。 关于 人员,组织,资源 的冗余信息应该在各自的系统中查询和录入。

权限表(Permission)

field name field type comment
Id string 权限ID
ActionId string 动作ID
GroupId string 组织ID
ResourceId string 资源ID

动作表(Action)

field name field type comment
Id string 动作ID
Name string 动作名称
Description string 动作描述

规则表(暂略)

人员表(User)

field name field type comment
Id string 用户ID
Name string 用户名
Password string 密码
Email string 邮件地址

组织表(Group)

field name field type comment
Id string 组织ID
ParentId string 父组织ID
Name string 组织名称
Description string 组织描述

用户-组织关联表(UserGroupRel)

field name field type comment
Id string 用户组织关系ID
UserId string 用户ID
GroupId string 组织ID

资源表(Resource)

field name field type comment
Id string 资源ID
ParentId string 父资源ID
Name string 资源名称
Description string 资源描述

权限规则

权限规则会以插件的形式加入权限验证的过程中,其目的就是让权限管理系统更加灵活,更加的通用。

关于权限规则的定义和解析,以后再单独介绍。

没有权限规则,整个权限管理系统也可以正常运行,使用。

总结

权限功能几乎是每个系统都需要的功能,也是每个系统中比较麻烦的一个模块,不仅测试麻烦,而且一般对其他的业务侵入比较多。

本权限系统的数据结构很简单,以权限数据为核心,加上与之关联的一些表,先将基本的权限服务提供出来。

转载地址:http://xxbxl.baihongyu.com/

你可能感兴趣的文章
Windroy—在Windows上运行Android系统
查看>>
读书计划
查看>>
想了解迅雷亲历面试的经历吗:笔试+上机+面试
查看>>
媒体查询
查看>>
手机分辨率有哪些
查看>>
MongoDB的分片集群的安装
查看>>
GuozhongCrawler系列教程 (4) StartContext详解
查看>>
MongoDB java操作的一些记录
查看>>
shell脚本案例
查看>>
Python基础03 序列
查看>>
SpringBoot入门第一节
查看>>
Web语义化
查看>>
[case分享]Exchange 2013 IMAP问题解决历程
查看>>
转:Android之String国际化对照表
查看>>
@ResponseBody处理Clob数据
查看>>
nginx安装
查看>>
Mysql5.6启动报错1067错误解决方法
查看>>
Objective-C 2.0 with Cocoa Foundation---NSObject的奥秘(1)
查看>>
CDH5 + ZOOKEEPER + HIVE安装
查看>>
如何开启MySQL的远程帐号
查看>>