php无限级分类:PHP无限级分类方法及代码



无论你要构建自己论坛在你网站WebSite上发布消息还是书写自己CMS你都会遇到要在技术来完成临街列表能完成所有事情同时改进前序遍历树算法更快当然更新树需要很多查询要慢但是取得节点却可以只用个查询

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

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

算法3

er; TEXT-ALIGN: center\" alt=\"\" src=\"/Files/BeyondPic/2007-8/9/114187bbcc1.jpg\" border=0>
在MYSQL中数据表大致上是
CREATE TABLE Table_Types
(
id INTEGER NOT NULL AUTO_INCREMENT,
parent_id INTEGER,
node VARCHAR(255),
PRIMARY 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根下来就可以了搜索方面好像也还不错都是避免了递归


Tags:  fate无限代码 php无限级分类

延伸阅读

最新评论

发表评论