问题标签 [materialized-path-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 如何在模板中将 django-treebeard MP 显示为下拉菜单?
按照treebeard docs api示例,我使用get_annotated_list(parent=None, max_depth=None)
with parent=<my root node>创建了我的树的 annotated_list 。我将它传递给我的模板并使用他们在文档中归因于 Alexey Kinyov 的示例,我能够使用成功显示我的树
我想要的是能够提供这些嵌套列表下拉功能。借鉴w3schools 上的这个标准示例,我对其进行了修改以使用我的annotated_list
模板变量并最终得到以下结果:
我的代码几乎可以工作,但似乎没有显示最左边节点的子节点,我不知道为什么。
注意:CSS 和 JS 不包括在内,但需要使下拉菜单工作(我只是使用 w3schools 示例中使用的开箱即用的 CSS/JS)
sql - 通过物化路径查询SQL中的邻接表
我在 Microsoft SQL Server (2019) 中使用邻接列表模型(例如 、 )存储了一个大型层次结构(2,500 多条记录Id
)ParentId
。我正在寻找一种有效的方法来根据层次结构中的特定路径查找记录。换句话说,给定一个路径(例如/Root/FolderA/SubfolderA
),我想检索Id
与最终节点关联的(即,SubfolderA
在这种情况下)。
注意:节点名称不是全局唯一的。即,我们不能只寻找
SubfolderA
并假设它映射到/Root/FolderA/SubfolderA
.SubfolderA
层次结构中可能有多个节点。
设置
等级制度
结构
数据
天真的方法
关于如何将邻接列表转换为物化路径有很多线程,包括:
看法
我们可以使用其中一种方法来使用 rCTE将整个邻接列表转换为物化路径:
输出
这会产生以下输出:
询问
我们可以使用一个简单的WHERE
子句过滤该输出:
问题
天真的方法效果很好。问题是查询大型层次结构的效率非常低,因此速度很慢,因为它需要在每次调用时动态重建整个物化路径集。就我而言,这需要 8-9 秒。显然,我可以将这些数据存储在一个表中,并在数据更改的任何时候通过触发器重新生成它。但我宁愿找到更有效的查询并避免额外的复杂性。
问题
构建此查询的有效方法是什么?或者,冒着使这成为 XY 问题的风险,有没有办法限制 rCTE,使其只需要评估层次结构中的节点,而不是每次都重建整个层次结构?
nestjs - 如何使用带有 typeorm 的物化路径树结构加载树
我有一个具有“物化路径”树结构的实体。
我正在尝试加载孩子。它给出了一个空的子对象下面是实体
获取树元素的代码
加载后得到的结果,子对象内没有数据
请让我知道我哪里出错了。
tree - 选择哪种树策略来保存兄弟位置?
在一个节点内,当孩子的位置很重要时,采用哪种树模式(邻接表、物化路径、嵌套集、闭包表等)来存储和获取按这些位置排序的整棵树?就易用性和性能而言,哪个是最好的?
例子
给定这些分层数据:
我希望能够切换给定节点的位置Node 1.1
并Node 1.2
存储新结果。那么获取的更新树应该是: