IT星球论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 364|回复: 0

设计OA系统的用户-角色-权限分配

[复制链接]

2002

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2016-1-4 18:29:22 |显示全部楼层
设计OA系统的用户-角色-权限分配
一,前言

  本文主要讲述在OA系统设计时用户——角色——权限的数据库设计,以便实现权限分配。

二,初步分析

  用户通过UI登录系统时,把用户的用户名、密码传递给后台判断用户表中是否存在可用的用户信息,如果存在那么允许页面的跳转,并设置一些Session信息,当页面跳转时根据用户的Session信息获取用户的角色,进一步根据角色获取用户的操作权限,这里的操作权限包括角色可以操作的菜单,以及此菜单对应的操作按钮。

  通过上面的描述就可以分析出系统中包含的数据表有T_Users(用户表)、T_Roles(角色表)、R_UserRole(用户角色关系表)、T_Menus(菜单表)、T_Button(按钮表)以及

R_Privilege(角色、菜单、按钮关系表)、R_MenuButton(菜单按钮关系表),总共七张表。为了使文章更具有正对性,对于IT论坛和本文分析的问题无关紧要的数据表例如T_Deprt(部门表)等省去不提。

  下面通过物理模型图分析这些表的关系:

  

  以上的所有表中省去了对分析问题没有必要存在的一些数据字段。这些必要的字段相信开发的人员都能知道是什么意思,所以不做解释。

  需要说明的是:所有关系表(以"R_"开头的表)关联的表中的主键都是N:N的关系。此处需要特殊说明的就是R_Privilege表中的ObjectID、ObjectDescr。因为权限表既需要对应菜单,又需要对应增删改查的

按钮,所以ObjectID的值是MenuID或者MenuButtonID,这样对应的ObjectDescr就是Menu和Button。

  当用户登录时,会根据条件ObjectDescr='Menu'获取角色的RoleID对应的ObjectID=T_Menu.MenuID,这样能够获取所拥有的可操作的菜单。

  当打开某一页面时,根据条件ObjectDescr='Button'获取角色的RoleID对应的ObjectID=R_MenuButton.MenuButtonID,这样可以获取用户在相关页面的操作按钮BtnID。  

三,结语  以上即是关于主题的分析,希望能抛砖引玉。

http://www.cnblogs.com/jsping/archive/2013/01/23/2872972.html
设计OA系统的用户-角色-权限分配

该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部