好的概述
一般来说,您要在快速读取时间(例如,嵌套集)或快速写入时间(邻接列表)之间做出决定.通常,您最终会得到最适合您需求的以下选项组合.以下提供了一些深入阅读:
选项
我知道和一般的功能:
O(n/2)移动,插入,由于易失性编码而删除O(log n)插入,更新,删除的成本(子树的大小)LEFT(lineage, #) = '/enumerated/path')O(log n)插入,更新,删除的成本(子树的大小)我在表格中有一个树形结构,它使用物化路径让我快速找到孩子.但是,我还需要对结果进行深度优先排序,正如人们对线程论坛回复所期望的那样.
id | parent_id | matpath | created
----+-----------+---------+----------------------------
2 | 1 | 1 | 2010-05-08 15:18:37.987544
3 | 1 | 1 | 2010-05-08 17:38:14.125377
4 | 1 | 1 | 2010-05-08 17:38:57.26743
5 | 1 | 1 | 2010-05-08 17:43:28.211708
7 | 1 | 1 | 2010-05-08 18:18:11.849735
6 | 2 | 1.2 | 2010-05-08 17:50:43.288759
9 | 5 | 1.5 | 2010-05-09 14:02:43.818646
8 | 6 | 1.2.6 | 2010-05-09 14:01:17.632695
Run Code Online (Sandbox Code Playgroud)
所以最终的结果实际上应该像这样排序:
id | parent_id | matpath | …Run Code Online (Sandbox Code Playgroud)