【问题标题】:Print a Complete Transitive Closure Tree打印一个完整的传递闭包树
【发布时间】:2011-06-30 11:03:44
【问题描述】:

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

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

例如,我想要一个类似的输出:

  • 音频
    • 便携
      • MP3
  • 计算
    • 光驱
      • DVD-RW
    • 输入设备
      • 无线
        • 键盘
  • 家用电器
  • 电视
    • 液晶显示器
      • 宽屏
    • CRT

可选地受总类别深度限制。

这是此模型的限制,还是有解决方法?目前我一直在使用递归和缓存结果。

【问题讨论】:

    标签: php mysql transitive-closure-table


    【解决方案1】:

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

    或者,您可以按照此答案How can I find all siblings to my node and its anchestors in a hierarchical category tree? 中的建议从 MySQL 执行此操作

    【讨论】:

    • 我假设您已经编写了一个函数来执行此操作 - 如果没有,我可以提供一个用于此目的的函数。
    猜你喜欢
    • 2022-01-25
    • 2014-06-16
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2013-07-08
    • 2017-10-28
    相关资源
    最近更新 更多