【问题标题】:[MySql][PHP] Extract fathers/sons tree[MySql][PHP] 提取父/子树
【发布时间】:2014-06-13 15:42:07
【问题描述】:

我有一个 db 结构,如附图所示,在 A 列中我有父亲,在 B 列中有儿子。如您所见,儿子也可以是父亲。现在,我想知道有没有办法通过单个查询mysql来选择所有的infinite层次树。

谢谢。

【问题讨论】:

  • 不,你不能。您可以创建一个非常大的自联接...假设有 10 个自联接并创建一个具有 10 个层次结构的表。简单地选择整个表然后使用 php 处理整个表然后做一个超大的自连接会更好......
  • 用 PHP 做,是的。 1 个单一的查询,可能不能
  • @ProfileTwist 是的,但我怎么知道“B”的每个儿子有多少个儿子?

标签: php mysql tree hierarchical


【解决方案1】:

在具有无限级别的 MySQL 中没有已知的方法来执行此操作。您总是可以使用 n 个自连接,但使用 PHP 可能是更好的方法。

但是,您可以重构您的数据库架构,例如使用 Pre Order Tree Traversal:

Storing Hierarchical Data in a Database

这会增加插入数据的复杂性和运行时间,但会更容易获取树或子树。

【讨论】:

    猜你喜欢
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多