Java CMS Project 权限系统数据库设计

01/06/2011

业务环境用户权限管理

陈述需求:

  • 不同职责的人员,对于系统操作的权限应该是不同的
  • 可以对“组”进行权限分配
  • 权限管理系统应该是可扩展的
  • 满足业务系统中的功能权限

关于设计:

借助NoahWeb 的动作编程理念,在设计阶段,系统设计人员无须考虑程序结构的设计,而是从程序流程以及数据库结构开始入手。为了实现需求,数据库的设计可谓极其重要,无论是“组”操作的概念,还是整套权限管理系统的重要性,都在于数据库的设计。


分析数据库的过程:

  • 首先:根据需求可以抽离出三项对象关系:
  • 权限关系图一

  • 三张飙之间的关系是多对多的,一个权限可能同时属于多个管理组,一个管理组也可能包含多个权限。同样的道理,一个人员可能同时属于多个管理组,而一个管理组也可能同时包含多个人员:
  • 权限关系图二

  • 由于这三张表之间存在着多对多的关系,那么他们之间的交互,最好使用另外两张表来完成。而这两张表起着映射的作用,前者映射了权限表与管理组表之间的交互。后者映射了人员表与管理组表之间的交互。
  • 权限关系图三

  • 另外,还需要一章表来控制系统运行是左侧菜单中的权限分栏,也就是“权限分栏表”
  • 权限关系图四

  • 另外,人员表中抽离出两张外键表,分别记录 部门 , 职位信息
  • 根据上面的分析,我们进行数据库结构设计如下:
  • 权限关系图五

最终数据库字段设计

  • 人员表
  • 用户表

  • 部门表
  • 部门表

  • 职位表
  • 职位表

  • 权限分栏表
  • 权限分栏表

  • 权限表
  • 权限表

  • 组别表
  • 组别表

  • 组别人员关联表
  • 组别人员关联表

  • 权限组别关联表
  • 权限组别关联表