将平板餐桌解析成树的最有效/最优雅的方法是什么?
假设您有一个存储有序树层次结构的平面表: Id Name ParentId Order 1 'Node 1' 0 10 2 'Node 1.1' 1 10 3 'Node 2' 0 20 4 'Node 1.1.1' 2 10 5 'Node 2.1' 3 10 6 'Node 1.2' 1 20 这是一个图,我们有 [id] Name 。 根节点0是虚构的。 [0] ROOT / \ [1] Node 1 [3] Node 2 / \ \ [2] Node 1.1 [6] Node 1.2 [5] Node 2.1 / [4] Node 1.1.1 您将使用哪种简约方法将其作为正确排序,正确缩进的树输出到HTML(就此而言,还是文本)? 进一步假设您只有基本的数据结构(数组和哈希图),没有带有父/子引用的奇特对象,没有ORM,没有框架,只有两只手。 该表表示为结果集,可以随机访问。 可以使用伪代码或简单的英语,这纯粹是一个概念性问题。 额外的问题:在RDBMS中是否存在从根本上更好的方法来存储这样的树结构? 编辑和添加 要回答一个评论者( Mark Bessey )的问题:根节点不是必需的,因为它永远不会显示。 ParentId = 0是表示“这些是顶级”的约定。 Order列定义如何对具有相同父代的节点进行排序。 我所说的“结果集”可以图片为一个哈希表数组(保留在该术语中)。