php利用多叉树(平衡树)的方式构建无限分类
说起无限分类..大多数的结构都是 id name parent_id 这种模式.整个结构比较简单清晰.要构建和更新整个分类也比较容易.但是查询起来就会非常的麻烦.经常会用到递归的算法.例如 获取某个节点的所有父节点之类. 今天说一说通过多叉树的方式构建无限分类,结构上可能会复杂一点,构建和更新也比较麻烦.但是查询非常方便.两种方法的优劣就不评论了. 先看一张图 这是我们要构建的无限分类的模型. 电子产品是最大的分类.家用电器 ,数码产品是其子分类.可以看到子分类是被父分类包含起来的.每个分类都有左右 两个节点编号分别是1、2、3..... 根据上面的图mysql中建立表和插入数据 CREATE TABLE `product_categories` ( `id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 20 ) NOT NULL , `left_node` MEDIUMINT( 8 ) NOT NULL , `right_node` MEDIUMINT( 8 ) NOT NULL ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci; INSERT INTO `product_categories` (`id`,