Data structures 存储树结构的模型是什么?它们的特点是什么?

Data structures 存储树结构的模型是什么?它们的特点是什么?,data-structures,modeling,Data Structures,Modeling,到目前为止,我遇到了邻接列表、嵌套集和嵌套区间作为在数据库中存储树结构的模型。我对这些很了解,并且已经把树从一棵移植到另一棵 其他受欢迎的车型有哪些?他们的特点是什么?关于这个主题的好资源(书籍、网络等)是什么 我不仅在寻找数据库存储,而且希望扩展我对树的知识。例如,我了解到嵌套集/间隔对于关系数据库存储特别有利,并问自己,在其他上下文中它们实际上是一个错误的选择吗?一种变体是,您使用直接层次表示法(即节点中的父链接),但也存储路径值 例如,对于包含以下内容的目录树: C:\ Temp

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

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


我不仅在寻找数据库存储,而且希望扩展我对树的知识。例如,我了解到嵌套集/间隔对于关系数据库存储特别有利,并问自己,在其他上下文中它们实际上是一个错误的选择吗?

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

例如,对于包含以下内容的目录树:

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*
路径被编入索引,并允许您快速执行一个查询,以拾取一个节点及其所有子节点,而无需操纵范围

即,要查找C:\Temp及其所有子项:

WHERE Path LIKE '*1*2*%'

这个表示法是我能想到的唯一一个可以将id存储在字符串中的地方。

这方面的重要资源是本书的第28-30章


(我推荐这本书太多了,我想塞尔科现在欠我版税了!)

那将是邻接列表和物化路径的混合体,对吗?在什么情况下会使用它?在我看来,使用嵌套集/间隔可以更好地获得一个查询中的所有子查询,我看不出您还想存储邻接列表做什么?