题目:
例如:主任,主管,科长,文员,
主任,可以看到它自己+下面职员的资料
主管,可以看到他+下面2人的资料
科长,只能看到他+文员的资料
文员只可以看到自己,因为他下面无下级
解决方案:
- 查询的时候
id | name | parentId | IDPath |
1 | 主任 | 0 | -1- |
2 | 主管 | 1 | -1-2- |
3 | 科长 | 2 | -1- 2-3- |
4 | 文员 | 3 | -1-2–3-4- |
这个数据结果不知你是否看得懂
如:查找主任及下属员工的sql语句
select * from table where id=1 or idpath iddpath like '%-1-%'
- 插入的时候
新增一个新的用户时需要先查询出他的上级领导的iDPath,在加上自己的 id和一个 ‘-’ 组成新增用户的iDPath 字段即可!如果没有上级则iDPath 字段内容为 -当前用户id-
- 在查询当前用户可看的文档的时候可以执行以下的sql将当前用户能看到的用户id查询出来
select * from table where id=1 or idpath iddpath like '%-当前登录者的id-%'