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

  无论你要构建自己论坛在你网站WebSite上发布消息还是书写自己CMS你都会遇到要在数据库中存储层次数据情况同时除非你使用种像XML数据库否则关系数据库中表都不是层次结构他们只是个平坦列表所以你必须找到种把层次数据库转化思路方法

  存储树形结构是个很常见问题他有好几种解决方案主要有两种思路方法:邻接列表模型和改进前序遍历树算法

  在本文中我们将探讨这两种保存层次数据思路方法我将举个在线食品店树形图例子这个食品店通过类别、颜色和品种来组织食品树形图如下:

  

  在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三级分类代码 php无限分类

延伸阅读

最新评论

发表评论