【发布时间】:2020-01-06 23:35:19
【问题描述】:
我知道在关系数据库中描述分层数据的几种模型:
- 自引用父(每条记录都有一个外键指向同一张表的主键,不知道这个叫什么)
- 邻接列表
- 嵌套集
我突然想到,还有另一种描述层次结构的方法,它与这些模型有不同的缺点(一件事的高度冗余) - 即维护一个影子表,其中每个表的所有祖先树中的节点以及该节点与其祖先相隔的世代数,例如
node ancestor generations
---- -------- -----------
leaf parent 1
leaf grandparent 2
leaf great-grandparent 3
leaf root 4
parent grandparent 1
parent great-grandparent 2
parent root 3
grandparent great-grandparent 1
grandparent root 2
great-grandparent root 1
描述层次结构......
root
|
+- great-grandparent
|
+- grandparent
|
+- parent
|
+- leaf
我真诚地怀疑我是否发明了一些新东西 - 但由于搜索引擎返回的噪音,我很难在网络上找到对此的描述。
这已经有名字了吗?
【问题讨论】:
-
在this presentation(page 46) 中,此模型称为闭包表。 This question 也可能是相关的。
-
@AlbertoSinigaglia:没有。
-
@jrook 谢谢 - 想把这个放在答案而不是评论中?
标签: algorithm relational-database