mysql - 将邻接表模型和嵌套集模型结合起来是否被认为是糟糕的设计?

标签 mysql nested-sets adjacency-list

我正致力于在 MySQL 中构建树结构,并且一直在尝试用不同的方式表示数据。但是,无论我怎么切,都有缺点。

嵌套集模型让我可以轻松地选择树的整个分支——这是我需要做的。然而,选择节点的直接子节点并不是那么容易。

邻接表模型非常适合获取直接子节点,但不适合返回树的整个分支。

我想知道,构建这样的树结构有什么特别不好的地方吗:

TABLE: Tree
    ID
    name
    lft
    rgt
    parentID

所以我所拥有的是邻接表模型和嵌套集模型都在同一个表中。这样我就可以使用/或,这取决于我选择的情况。

人们的想法是什么?这是允许的吗? (花生酱和巧克力终于在一起了?)或者这被认为是糟糕的设计?

提前致谢

最佳答案

我自己强烈推荐。这是 CakePHP 用于其树结构的样式,正如您所指出的,它为您提供了极大的灵 active 。您只需要多做一点工作来确保树的完整性,但这是非常值得的。

关于mysql - 将邻接表模型和嵌套集模型结合起来是否被认为是糟糕的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318708/

相关文章:

algorithm - 确定有向图是否单连通的最有效方法是什么?

mysql - 如何提高 COUNT(DISTINCT field1)... GROUP BY field2 的性能?

PHP SQL SELECT sum(value) WHERE x LIKE '%$month%' (foreach)

MySQL更新一行的后续重复项

java - 如何在 JPA 中反射(reflect) "Nested Sets"模型

database - 如何对使用嵌套集模型存储的树进行排序?

java - 更新数据到mysql数据库表失败

php - 一张嵌套集表可供多个用户使用

python - 如何将其存储在 python 图形的邻接列表中?

c++ - 如何填充加权图的邻接表?