到目前为止,我已经遇到过邻接表、嵌套集和嵌套间隔作为在数据库中存储树结构的模型。我对这些很了解,并且已经将树木从一棵树迁移到另一棵树。

还有哪些其他受欢迎的型号?他们有什么特点?关于这个主题有哪些好的资源(书籍、网络等)?

我不仅在寻找数据库存储,而且还想扩展我对树的一般知识。例如,我知道嵌套集/间隔特别有利于关系数据库存储,并且问自己,它们实际上是一个 坏的 在其他情况下的选择?

有帮助吗?

解决方案

这方面的重要资源是《 聪明人的 SQL.

(我非常推荐这本书,我想 Celko 现在欠我版税了!)

其他提示

一种变体是使用直接层次表示(即节点中的父链接),还存储路径值。

IE。对于由以下内容组成的目录树:

C:\
   Temp
   Windows
       System32

您将拥有以下节点

Key     Name     Parent     Path
1       C:                  *1*
2       Temp       1        *1*2*
3       Windows    1        *1*3*
4       System32   3        *1*3*4*

路径已建立索引,并且允许您快速执行查询以获取节点及其所有子节点,而无需操作范围。

IE。查找 C: emp 及其所有子项:

WHERE Path LIKE '*1*2*%'

这是我能想到的唯一存储位置 身份证号 在这样的字符串中就可以了。

@拉塞夫克: 本文 更详细地讨论您的方法并提供代码片段。

希望这可以帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top