今天来介绍把树形结构存入数据库的第二种方法——路径枚举法。
还是借用上一篇的栗子,为了方便大家查阅,我把图又原样搬过来了。
需要回答的问题依旧是这样几个:
1.查询小天的直接上司。
2.查询老宋管理下的直属员工。
3.查询小天的所有上司。
4.查询老王管理的所有员工。
方案二、 Path Enumeration 路径枚举法,记录下根节点到每个子节点的路径。
先创建表:
CREATE TABLE employees2(
eid INT,
ename VARCHAR(100),
position VARCHAR(100),
path VARCHAR(200)
)
然后插入数据:
现在我们来回答一下之前的问题:
1.查询小天的直接上司。
在上一个解决方案中能轻而易举做到的事情,在这个方案中却有些麻烦了,因为需要对path字段进行字符串处理,去掉“/”+自身id才是直接上司的path值。又开始一顿骚操作: