参考文章:
1.http://www.2cto.com/database/201303/194971.html
2.http://www.jb51.net/article/28020.htm
实现无线分类的方法还有邻接表,路径枚举,闭包表
创建表:
CREATE TABLE nestedCategory(
id INT NOT NULL PRIMARY KEY,
title VARCHAR(20) NOT NULL,
lft INT NOT NULL,
rgt INT NOT NULL
);
插入测试数据:
insert into `nestedcategory`(`id`,`title`,`lft`,`rgt`) values (1,'Food',1,18),(2,'Fruit',2,11),(3,'Red',3,6),(4,'Cherry',4,5),(5,'Yellow',7,10),(6,'Banana',8,9),(7,'Meat',12,17),(8,'Beef',13,14),(9,'Pork',15,16);
结构图:
思路:树的前序遍历改进算法
1.通过树id查找 一个完成的树
(1)先根据id查找到当前结点的左右值lft,rgt
(2)在查找结点左值(右值)在lft 和rgt之间,并按照lft升序排序
(3)两条相邻的记录的右值如果前一条大于当前条