打印完整的传递闭包树

时间:2011-06-30 11:03:45

标签: php mysql transitive-closure-table

在我们的网上商店(PHP / MySQL)中,对于我们的类别结构,我们使用Bill Karwin所描述的传递闭包表(祖先,后代,长度)。

我发现它非常灵活和有用,但无法解决如何在没有递归的情况下打印完整的类别树。这可能吗?

例如,我想要一个类似于:

的输出
  • 音频
    • 便携式
      • MP3
  • 计算
    • 光驱
      • DVD-RW
    • 输入设备
      • 无线
        • 键盘
  • 家用电器
  • 电视
    • LCD
      • 宽屏
    • CRT

可选择限制总类别深度。

这是这个模型的限制,还是有办法绕过它?目前我一直在使用递归和缓存结果。

1 个答案:

答案 0 :(得分:2)

递归是最简单的方法 - 尤其是当它用于显示时。

或者你也可以在这个答案的How can I find all siblings to my node and its anchestors in a hierarchical category tree?

的建议中使用MySQL