WEB开发网
开发学院WEB开发PHP PHP无限级分类方法及代码 阅读

PHP无限级分类方法及代码

 2008-11-19 15:38:44 来源:WEB开发网   
核心提示: 总结你现在已经对两种在数据库存储树方式熟悉了吧,虽然在我这儿改进前序遍历树算法性能更好,PHP无限级分类方法及代码(8),但是也许在你特殊的情况下邻接列表方法可能表现更好一些,这个就留给你自己决定了最后一点:就像我已经说得我部推荐你使用节点的标题来引用这个节点,对插入操作尤其简单,只要找到

总结

你现在已经对两种在数据库存储树方式熟悉了吧。虽然在我这儿改进前序遍历树算法性能更好,但是也许在你特殊的情况下邻接列表方法可能表现更好一些。这个就留给你自己决定了

最后一点:就像我已经说得我部推荐你使用节点的标题来引用这个节点。你应该遵循数据库标准化的基本规则。我没有使用数字标识是因为用了之后例子就比较难读。

算法3

<a target=PHP无限级分类方法及代码" onload="return imgzoom(this,550);" onclick="javascript:window.open(this.src);" style="cursor:pointer;"/>

在MYSQL中,数据表大致上是

CREATE TABLE Table_Types
(
id INTEGER NOT NULL AUTO_INCREMENT,
parent_id INTEGER,
node VARCHAR(255),
Prima(最完善的虚拟主机管理系统)RY KEY (id)
)

如上图,紫色的是数据记录的ID号,框内的数字是每条记录的node字段,记录了该记录的父ID和父ID的父ID和...

这样,假如我们要在ID为7的记录下,插入一条新ID为13的记录,新记录的node就是1,2,7,13

要找一个节点下的所有子节点,就无需用递归,只要一个SQL。

如“查ID为2记录下所有子节点”

select * from Table_Types where node like "1,2,%"

大家探讨一下,该算法的有效性和不足!

上次看到的左右值的算法,虽然在搜索方面很不错,但是如果是插入频繁的应用,性能就很差了,因为每次插入新节点都需要update该父节点以下 的所有记录。的右值。而上面这个算法,对插入操作尤其简单,只要找到父ID的根下来就可以了。搜索方面好像也还不错,都是避免了递归

上一页  3 4 5 6 7 8 

Tags:PHP 无限 分类

编辑录入:coldstar [复制链接] [打 印]
赞助商链接