一个关于权限设置问题! 求思路!!
例如 经理a下面有2个员工 ,经理有50条记录数据 员工A 有5条记录数据, 员工B 有20记录数据! 现在要求是: 经理进入后台看到的是A+B+自己的累积数据和=75条记录, 员工A和B就只能看到自己的记录!!
之前做的权限都是自己看自己的! 这个需求稍微有点不一样!!! 求思路!!!!!
------解决方案--------------------无非就是上一级人员拥有下级人员权限的并集。
------解决方案--------------------如果是sql2008,试试 hierarchyid,如果是其他数据库,试试递归查询
------解决方案--------------------数据表可以多加一列 用于区分是谁的数据
比如员工A的数据 A
员工B的数据 B
经理查询的时候 select all
员工A查询的时候显示A的所有列
员工B查询的时候显示B的所有列
你觉得如何
------解决方案--------------------专门建一个存储员工关系的表。
id,员工id,所属上级id
同一个员工可以被多个上级管理。 这样就比较合理了
------解决方案--------------------要比较灵活的话,就自己弄个关系表,如果简单点处理的话,就按照上下级关系,筛选出来可查询的权限ID列表,按照这个条件再去查询数据就行了
------解决方案--------------------只需分两级权限即可:1 经理 2员工
if(userType=="经理")
{
//查询全部
String sqlStr=“select * from 表”;
}
else
{
//查询自己的
String sqlStr=“select * from 表 where userid=‘’ ”;
}
------解决方案--------------------这类问题不要写死了。
建个员工关系表, 查询的时候用递归就行了。
------解决方案--------------------这类问题不要写死了。
建个员工关系表, 查询的时候用递归就行了。
------解决方案--------------------这个跟控制权限没有太大的关系,直接控制你的sql语句 就ok了. 经理经别的 ,则查询所有.
其他员工的则查询各自的. 根据每个人自己的标示查询就是了
------解决方案--------------------
++
------解决方案--------------------
+1
------解决方案--------------------这个不难吧.
ID 名称 上级ID 所属ID
1 经理 0 1,2,3
2 员工A 1 2
3 员工B 1 3
select * from 表 where 所属ID=1,2,3