php中的树数据结构

时间:2010-05-26 07:21:05

标签: php data-structures hierarchical-data

在我的应用程序中,用户启动一个新树或添加到一个子用户下,并继续以这种方式在分支机构中添加用户 - >有10级树型结构 >根节点包含1用户,每个节点(用户)可以拥有 max 5子用户,这样树就像level 0 = 1 user
level 1 = 5 user
 level 2 = 25 user
level 3 = 125 user等等。

我创建了一个包含像

这样的列的MySQL表

User_idlevelsuper_idchild1_idchild2_idchild3_idchild4_idchild5_id

我的问题是如何在任何级别获取特定用户的所有子用户(child to child also我是否需要在我的表中添加更多列?

3 个答案:

答案 0 :(得分:3)

您可能会发现从上周的PHP TEK-X会议上阅读我的演示文稿很有意思:

Models for Hierarchical Data with SQL and PHP

本讲座描述了SQL中的替代解决方案,包括:

  • 邻接清单
  • 路径枚举
  • 嵌套集
  • 关闭表

另请参阅我对此Stack Overflow问题的回答:What is the most efficient/elegant way to parse a flat table into a tree?

答案 1 :(得分:-1)

您应该查看Nested Sets

在PHP中,您可以使用Doctrine Nested Sets,这将使您的生活更轻松。

答案 2 :(得分:-1)

这是我用来构建二叉树数据结构及其相应操作的完整代码: