题目:
例如:主任,主管,科长,文员,
主任,可以看到它自己+下面职员的资料
主管,可以看到他+下面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-%'
本文介绍了一种基于IDPath的组织结构查询方法,通过在数据库中存储员工及其上级的路径,实现不同级别管理者查看权限范围内的员工信息。具体包括查询语句的构造、新用户插入时IDPath字段的更新策略。
2849

被折叠的 条评论
为什么被折叠?



