问题标签 [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.

0 投票
1 回答
1390 浏览

firebase - 如何在 Firebase 中存储分层数据

在 SQL 中,我使用嵌套集来存储分层数据。我正在尝试对 Firebase 做同样的事情。理论上,层次结构可能有“n”级深,但实际上可能只有 5-7 级深。

我做了相当多的研究。此Mongo DB 文档建议仅在静态树上使用嵌套集。我的数据会随着时间的推移发生很大变化。同一份文件得出的结论是物化路径是要走的路。

有人对此有经验吗?

0 投票
1 回答
620 浏览

mysql - 如何正确排序 SQL 中的物化路径?

我正在使用物化路径在 SQl 中存储树结构(在我的例子中是 MySQL 5.7)。我将路径存储为斜线分隔的 slug。我读过的所有教程都说按路径对行进行排序以按正确的顺序提取它,但是当路径的某些部分具有相似的前缀时,它似乎不起作用。

一些示例代码:

现在,当按路径排序时,我得到了错误的顺序:

输出:

这似乎是因为 - 在大多数(所有?)排序规则中都在 / 之前。

疯狂的是,unix 排序命令行实用程序做了正确的事情。如果我将所有路径放在一个文件中并对其进行排序,我会得到正确的输出:

有什么方法可以让 MySQL 对树进行正确排序?以与 unix 的 sort 实用程序相同的方式对其进行排序?也许是不同的排序规则或什么?还是有什么其他技巧?

0 投票
1 回答
1570 浏览

sql-server - 获取祖先的有效方法-物化路径

我有一个使用物化路径存储的分层数据结构。

我将该node列作为主键(聚集)

现在,如果我想找到 的祖先f3,给定路径,我会这样做:

问题在于,执行计划使用聚集索引扫描(我认为 SQL 服务器默认用于表扫描)

无论如何我可以找到一个节点的祖先,以更有效的方式给出路径,最好不使用 CTE?如果需要,我也有一个depth专栏供我使用。

0 投票
1 回答
44 浏览

sql - SQL 到 Doctrine 的 QueryBuilder 转换

我在 Room 和 Rights 实体之间有 ManyToMany 关系。Doctrine 自动创建了第三个“room_rights”表。权限是分层的,我使用物化路径方法将它们存储在数据库中,因此“权限”表具有“路径”字段。

我想获得具有路径的房间,就像我作为参数提供的路径一样。我可以用 SQL 查询来做到这一点:

这在我在数据库上运行时有效。现在,我必须使用 Doctrine 的 QueryBuilder 来制作它,但是当有连接表时我不知道该怎么做。你能帮忙吗?

0 投票
0 回答
278 浏览

c# - represent tree data structure with multiple parents whose parent path is stored in model

I am trying to implement a organizational structure where one user can have more than one children users and parent users. Using cosmosDB as document database, I have stored the path of parent users in each user document.

Data Structure of user document

where path is List<List<string>>()

Problem: I wrote logic to update the paths of the users and find the flat list of ascendants and descendants of a user. The problem I am facing is to represent these list of users in hierarchy.

Output expected:

In front-end, i am using JsTree library to show the user hierarchies.

I looked for many solutions regarding this but couldn't find the way i am looking for. Any help would be appreciated.

0 投票
1 回答
92 浏览

javascript - 将代码从 javascript 移植到 go 的问题

我在 JS 中有这段代码,它将某种物化路径转换为树结构:

它工作正常并给了我期望的结果:

但是我在将它移植到 Go 时遇到了一些问题。迄今为止最接近的解决方案是:

但是在不同的输入上仍然缺少一些值,比如

给我

任何帮助表示赞赏。

去游乐场: https: //play.golang.org/p/XIHbaDHkp0m

0 投票
1 回答
679 浏览

node.js - TypeORM 不更新 MaterializedPath

我正在尝试使用 TypeORM 更新 SQLite3 数据库中的物化路径。文件夹表(我正在更新)同时包含 parent 和 parentId 列。当我更新父列时, parentId 列将更新,但 mpath 列不会更新。

我尝试同时使用 getRepository() 和 getTreeRepository() 进行更新。

我不确定还要添加什么,请参阅下面的附加模型和更新方法。

模型

更新

0 投票
0 回答
92 浏览

python-3.x - 如何将物化路径数据用于带有python的强制定向树

具体化路径的日期结构如下图所示:

我想使用这些数据来生成一个力导向的树形图,就像: Force-Directed-Tree

但是这种类型的图表只采用如下结构:

我不知道如何将数据转换为目标结构,因为我不知道一个笔记有多少叶子以及节点树的深度。我正在使用python,所以有什么建议吗?非常感谢!

0 投票
2 回答
521 浏览

javascript - 从物化路径创建特定的树结构

我有“实体”和“实体模板”。顶级实体与“templateId1”实体模板相关联。从那里,实体通过使用其 id 与路径中的另一个实体绑定。我试图以一种有效的方式结束以下数据结构:

该结构的最初灵感来自 MongoDB 文档:

https://docs.mongodb.com/manual/tutorial/model-tree-structures-with-materialized-paths/

我有一个稍微不同的用例,“实体模板”是顶级父级,但在“实体”中,用例是相同的。非常感谢任何见解。

0 投票
0 回答
70 浏览

ruby-on-rails - 平面物化路径中的“目录”嵌套树

我有这个路径数组:

每个段用 . 分隔.

我需要在视图中呈现目录。

将数组转换为嵌套哈希的最简单方法是什么?或者也许有更好的结构/方法来生成所需的html?

UPD

给出我需要的哈希树结构: