关于用户和权限设计的问题。。。求高手指点

问题描述

用户和权限应该是每个系统最基本的功能了吧,所以我也想弄清楚,但是目前没清晰的思路~我想的是主要分为:用户people机构organize角色role权限菜单power大概意思是:用户属于某个机构,拥有某些角色,每个角色代表不同的权限,也就是不同的角色显示不同的页面菜单现在的问题是,比如我把用户和机构在数据库设计时做关联,多对一关系,会出现用户表的外键orgNo指向机构表的orgNo,那么机构表的orgNo就要作为主键了,但是实际上,对于机构表来说,orgNo一般是不作为主键的!~这就产生了一个矛盾~!其次是,在这种关系下,我新增用户,由于我要参照机构表,只能选择机构表中存在的机构,那么我每次新增用户都需要去查询出机构表中的内容吗?如果增加用户频率多,那么查询数据库次数多,耗能!即便频率不多,靠这种手动查询,个人感觉应该不高端,是不是有数据库设计的方式能够在我新增用户的时候,自动就由关联了机构表呢?还有就是角色了role了,role可以和菜单关联,然后再和用户关联,和上面同样的问题,一个用户拥有了某些角色,怎么控制才能使页面只显示该角色下的菜单呢?是不是当用户登录的时候,我获取该用户的信息,取出roleId值,然后判断该值对应的power值?这个power值要怎么才能关联到页面菜单的显示呢?或者还有没有别的方法方式么?求高手指点!!!

解决方案

解决方案二:
对了,公司的权限更复杂,不仅增加了岗位,表也更多了,还有其他乱七八糟的属性·!可惜都是jar文件,很难弄清楚实现!也是因为略复杂,不太容易弄清楚,所以才想自己弄一弄,简单的熟悉了在循序渐进~!求指点!!!
解决方案三:
1,orgNo不是主键的话,给它唯一约束也能满足你的需求。2,普通操作你可以这么干。因为操作人默认是往自己机构添加用户,不需要你再检索机构表。当然特殊角色除外,比如超级管理员。3,要根据角色进行检索的。这个是rbac的核心思想。建议楼主多思考一下。4,
解决方案四:
新增用户时应该查询出机构然后选择该用户是属于哪个机构;按照你的说法:新增用户时自动关联,又怎么知道该用户属于哪个机构呢?所以自动关联不成立
解决方案五:
引用3楼guo315648865的回复:

新增用户时应该查询出机构然后选择该用户是属于哪个机构;按照你的说法:新增用户时自动关联,又怎么知道该用户属于哪个机构呢?所以自动关联不成立

可能我表达不清晰,我是说增加用户时要选择其所在机构,这个机构的取值来自于数据库,要受到机构表的约束!我怎么才能在页面中确定该机构的范围?比如我增加用户u1,要属于a机构或者a子机构,怎么能约束到页面不要显示出b机构的信息呢?按逻辑理解,这个应该是由登录了的用户决定的,因为是他在增加用户~!那是不是通过登录人员的机构信息去判断?
解决方案六:
感觉LZ想多了,目标用户,你都不知道他属于A,还是B,你怎么定位到a机构或者a的子机构呢。给个建议,可以让用户先选择机构大类,然后再选择机构小类。另外需要说的是,人员添加其实不会耗多少性能的,查询数据库几次每秒不会存在性能问题。当真的出现了,那数据库该有多屎啊。关于角色的问题,其实LZ可以在用户登录后,就将用户角色,组织关系记录到session中,这样其实就不会多查数据库了。引用4楼seguzhizi的回复:

Quote: 引用3楼guo315648865的回复:
新增用户时应该查询出机构然后选择该用户是属于哪个机构;按照你的说法:新增用户时自动关联,又怎么知道该用户属于哪个机构呢?所以自动关联不成立

可能我表达不清晰,我是说增加用户时要选择其所在机构,这个机构的取值来自于数据库,要受到机构表的约束!我怎么才能在页面中确定该机构的范围?比如我增加用户u1,要属于a机构或者a子机构,怎么能约束到页面不要显示出b机构的信息呢?按逻辑理解,这个应该是由登录了的用户决定的,因为是他在增加用户~!那是不是通过登录人员的机构信息去判断?

解决方案七:
支持楼上的
解决方案八:
页面菜单能不能用XML文件,到时候在根据权限读取?
解决方案九:
在登陆的时候就要判断用户的权限进去就只是他应该看到的,当总经理这个角色时他是有权限增加普通员工啊组长啊之类的这时候只需给他对应的角色就行,每个角色的权限是一定的而角色是可以变得所以只需判断角色就可以显示对应的页面
解决方案十:
用户角色权限用户对应角色,角色对应多个权限。。在复杂一点就是用户对应多个角色,角色对应多个权限。。中间价格角色用户关联表就好。

时间: 2024-02-29 23:16:47

关于用户和权限设计的问题。。。求高手指点的相关文章

求gxt 文件上传实例(在gxt中如何提交formpanel,服务端怎么设计),求高手!

问题描述 求gxt 文件上传实例(在gxt中如何提交formpanel,服务端怎么设计),求高手! 解决方案 FormPanel form = new FormPanel();form .setMethod(Method.POST);form .setEncoding(Encoding.MULTIPART);FileUploadField fileUpload = new FileUploadField();fileUpload.getMessages().setBrowseText(msg.b

c# c++-C++代码转化为C#代码 求高手指点,写出注释谢谢啊

问题描述 C++代码转化为C#代码 求高手指点,写出注释谢谢啊 // scDlg.cpp : 实现文件 // #include "stdafx.h" #include "sc.h" #include "scDlg.h" #include ".scdlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用于应用程序"关于"菜单项的 CAboutDlg 对话框

我这想做个在线广播收听。怎么做。求高手指点

问题描述 我这想做个在线广播收听.怎么做.求高手指点 解决方案 解决方案二:4年前做的,忘记差不多了,现在机器上也没有MQ.到Google上搜索$关键字site:ibm.com来查找IBM网站上关于MQ的资料.装MQV6时,安装时选择"开发工具箱,也可能叫SDK"的话,会给个一些JMS样例,包括一个创建JMS初始配置的mqsc文件之类的,打开这个mqsc文件看一下,它会为启用JMS创建哪些队列和配置.MQ帮助里面也有文档,在MQ需要配置MQMessageBroker,它负责监视JMS队

我想写一个查询在线IP功能的软件模块,但写好后出不来效果,跪求高手指点,谢谢。

问题描述 我这个主要是想实现查询一段给定的IP地址(例如:10.0.214.5-10.0.214.90)看看有哪些是在线的并以树的形式显示出来(这段代码还没写),类似于飞鸽的显示在线用户的功能一样.这里我写的这段程序,主要分为三个部分:界面,发送验证信息的线程.接受验证信息并回复的线程.我感觉自己可能逻辑上存在问题,跪求高手指点,我编程还比较猜.希望高手援救,谢谢.//这是运行时的界面,还很简陋,实现功能后再美化importjava.awt.event.*;importjava.net.*;im

怎么用ARCGIS画一张校园地图~~求高手指点~~最好带详细步骤~

问题描述 怎么用ARCGIS画一张校园地图~~求高手指点~~最好带详细步骤~ 解决方案 解决方案二:没有原始数据,谁能画出来,真心牛逼,要是只有ArcGIS就能画出来某个地方的地图,那搞测绘的不早失业啦.解决方案三:建议使用Mapinfo来做,从百度地图或谷歌地图的卫星图上下个卫星图,然后用mapinfo配准后,自己画吧,电子地图也就是这样做出来的解决方案四:过来参观学习,是这样做出来的解决方案五:你可以在百度或者高德地图上截取一张你学校的地图,然后再在arcmap里进行矢量化,前提是你只需要你

递归-一个比较复杂的级联删除问题 ,求高手指点

问题描述 一个比较复杂的级联删除问题 ,求高手指点 是这样的,现在要做一个通用的删除方法.删除一个配置项和其关联配置项,逻辑很复杂.首先,数据库结构大概是这样的:有N个配置项,每个配置项有一张表,每个配置项通过一个中间表和其他配置项关联.有一对一,也有一对多的.所谓配置项一般都是一种设备,有序列号CI,ROWID来区分标识,每个设备有唯一的CI,但ROWID不唯一,ROWID是递增的,用HISTORY字段来区分是否在用.新增一个设备时是新生成一个CIROWID,HISTORY为1,表示在用.而更

php iis mysql-用PHP实现excel数据导入数据库,但是提示500错误,服务器是IIS,求高手指点

问题描述 用PHP实现excel数据导入数据库,但是提示500错误,服务器是IIS,求高手指点 require_once ('PHPExcel.php');require_once ('PHPExcel/IOFactory.php');require_once ('PHPExcel/Reader/Excel5.php');if($_POST['leadExcel'] == ""true""){ $filename = $_FILES['inputExcel']['n

模板-求ireprot导致系统挂掉服务器内存溢出求高手指点

问题描述 求ireprot导致系统挂掉服务器内存溢出求高手指点 我用的ireport 制作的pdf模板最近在系统中时不时出现因为某个jasper文件导致系统挂掉,服务器内存被调用这个文件的一个进程占用完了但是再次在系统中打印预览这个文件又正常了.不存在数据量大的问题,求各位高手指点下可能是什么原因导致的!!

编程-求高手指点pajek数据预处理问题

问题描述 求高手指点pajek数据预处理问题 小弟刚接触pajek软件,录入数据时打算用excel2pajek将excel数据转换成.net格式.想将如图所示的数据一形式整理成数据二形式.但编程能力实在有限没想到什么办法,望高手指点!