问题标签 [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.
sql-server-2008 - 物化路径模式 VS Hierarchyid
我正在阅读 SQL Server 2008 圣经,它说物化路径模式比hierarchyid 快得多。这是真的吗?我怎样才能使hierarchyid 具有相同或更好的性能。
sql - 用物化路径排序树?
我在表格中有一个树结构,它使用物化路径让我可以快速找到孩子。但是,我还需要对结果进行深度优先排序,正如人们对线程论坛回复所期望的那样。
所以最终的结果实际上应该是这样排序的:
我将如何解决这个问题?我可以直接使用 SQL(这是 PostgreSQL 8.4)来执行此操作,还是应该将其他信息添加到此表中?
更新:试图更好地解释排序标准。
想象一下 id '1' 是论坛的根帖子,所有以 '1' 开头的 'matpath' 都是该帖子的子项。所以 ids 2 到 5 是对 1 的直接回复并得到'1'的matpaths。但是,id 6 是回复 2,而不是直接回复 1,因此它的 matpath 为 1.2。这意味着对于具有正确嵌套的线程论坛,所有 id 都显示在表格中,论坛的结构将如下所示,因此排序要求:
materialized-path-pattern - 为物化路径树结构生成路径模式的最佳方法
浏览整个网络上的示例,我可以看到人们使用“parent_id.node_id”之类的东西生成路径。例子:-
但正如这个问题中所解释的 -使用物化路径排序树?,对 tree_id 使用零填充可以很容易地按创建顺序对其进行排序。
使用这样的固定长度字符串也可以让我轻松计算级别 - 长度(tree_id)/5。我担心的是它会将我限制为最多 9999 个用户,而不是每个分支 9999 个。我在这里吗?
java - 寻找使用hibernate存储嵌套数据的有效方法
我一直在尝试找到一种有效的方法来表示 java/hibernate 中的嵌套数据。我最初的解决方案是使用自引用连接的父/子列表,但是在使用 SQL 构建报表时,这种技术存在明显的缺陷。我正在研究嵌套集和物化路径,但我希望有一种方法可以表示 hibernate 原生的嵌套数据,这对于通过 SQL 查询也很有效。
sql - 表示 Sql Server 中的树结构,包括虚拟路径
您好我想在 sql 数据库中创建一个树结构。我需要具有以下属性。
- 快速选择
- 仅使用 Cat2/Cat4 之类的字符串即可轻松选择 -> 返回 Cat5 和 Cat6
- 支持虚拟类别
- 插入应该很容易,但与快速选择相比并不重要
- 删除与插入相同,简单会很好,但再次重要的是能够快速选择
- 重新排序再次不如选择重要
我查看了 Materialized-Path 和 hierarchyId,但大多数示例都使用 AdventureWorks 之类的示例,这对于我的需要来说太复杂了。
只是为了记录,我使用 Sql Server 2008 R2 和 C# 4.0
mysql - 什么尺寸使物化路径不切实际?
如果我希望我的表有 700,000 行,
用户可以是普通注册(启动全新的树)
或用户可以是受邀注册(在现有树上启动新分支)。
如果我们期望这些树平均从第一个节点获得 800 个节点,物化路径是否实用,在什么时候它们变得不切实际?
php - 根据mysql中的路径进行选择
我有一个 column id
,一个 columnparent
和一个 column path
,它是一个物化路径。
看起来像
我需要根据这张表做一些查询。
我需要做的查询是
选择所有
id
9岁的孩子
可以正常工作,直到您将 ID 替换为 1 或 19,因为/
一开始没有。
将选择数字以 1 结尾的所有行,因此,1、11、21、31、211 等
对于第 1 行或第 19 行都可以正常工作
所以SELECT * FROM
测试仪WHERE 'path' LIKE '1/%' OR 'path' LIKE '%/1/%'
;
是我能想到的最好的,有什么建议吗?
为此
Select * from
测试人员选择 9 个的直接子代,但不选择子代where 'parent' = 9
;会正常工作。
选择 9 个孩子的总数,x 层深。
所以我想以一行level1, level2, level3, ... levelx
或 x 行结束,代表不同的级别,
让我们假设此示例的 x 为 3 此示例中的行将是9, 8, 6
(如果我们要求,第 4 级将是 3)
有任何想法吗?
编辑
**选择 9 的孩子的 id 到 x 级别,与 9 相关的级别,
所以在这个例子中,我们将再次使用 3 作为 x。
我们正在寻找回来
我再次完全不知道如何做到这一点。
编辑:
sql - 在保持结构的同时对树进行排序
我有一棵使用物化路径的树。
该表类似于:
我想score
在保持树结构的同时按列排序。
重要的是孩子在父母之下。
该path
列仅在数据库中使用,因此不必是顺序的。
我目前用来对树进行排序以便构建它的 SQL:
sqlite - 选择物化路径中具有 ID 的所有行
我有一个带有物化路径列(matpath)的树结构表。数据如下所示:
ETC
给定 ID,如何获取高于(一个查询)或低于(另一个查询)的所有元素?例如,如果ID为7,我想选择除7之外ID为1、2和5的行。如果给定的ID为3,则选择1、2和3。以此类推。
谢谢你。
ruby - 从物化路径构建树
我在使用 ruby 从物化路径构建树结构时遇到了麻烦。
假设我有一个排序的结果集(来自 couchdb):
我只需要它作为红宝石中的一棵树,以下哈希就足够了:
有人可以帮我吗?