问题描述
用户和权限应该是每个系统最基本的功能了吧,所以我也想弄清楚,但是目前没清晰的思路~我想的是主要分为:用户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文件,到时候在根据权限读取?
解决方案九:
在登陆的时候就要判断用户的权限进去就只是他应该看到的,当总经理这个角色时他是有权限增加普通员工啊组长啊之类的这时候只需给他对应的角色就行,每个角色的权限是一定的而角色是可以变得所以只需判断角色就可以显示对应的页面
解决方案十:
用户角色权限用户对应角色,角色对应多个权限。。在复杂一点就是用户对应多个角色,角色对应多个权限。。中间价格角色用户关联表就好。