0

我有许多不同的项目存储在不同的 MySQL 表中,我想将它们放入树层次结构中。使用邻接表模型,我可以为每个表添加一个 parent_id 字段,并使用外键关系链接这些表。

但是,我想使用嵌套集/修改的预序树遍历模型。数据将在严重偏向于读取的环境中使用,并且我希望运行的查询类型支持这种方法。

问题是我在嵌套集上的所有信息都假设您只有一种类型的项目,存储在一个表中。我能想到的解决方法是:

  • 树中有多个外键字段,每个表/项目类型一个。
  • 在树结构中存储项目表的名称以及项目 ID。

至少可以说这两种方法都不优雅,那么有没有更好的方法呢?

4

2 回答 2

1

从一开始, RDBMS就不太适合存储层次结构,而您的用例使情况变得更糟。我认为您将使用 RDBMS 获得对您自己的建议进行更精细调整但仍然丑陋的变化。恕我直言,其他数据模型将为您的问题提供更好的解决方案,例如图形数据库或文档数据库。文章您应该超越关系数据库吗?很好地介绍了这种东西。

于 2009-07-07T16:25:13.883 回答
0

您有几种类型的树,以及包含所有树类型的树信息(即左/右值)的单个表?

如果您有几种类型的树,为什么不为每种类型使用不同的表?

于 2009-07-06T17:37:28.857 回答