问题标签 [transitive-closure-table]
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 - 用于传递闭包的递归查询
我创建了一个简单的示例来说明在 PostgreSQL 中使用递归查询的传递闭包。
但是,我的递归查询有些问题。我还不熟悉语法,所以这个请求对我来说可能完全不合适,为此我提前道歉。如果您运行查询,您将看到节点 1 在路径结果中重复出现。有人可以帮我弄清楚如何调整 SQL 吗?
sql - oracle中一张表的递归分析(不是分层即不是父子关系)
我有这张 RC_CHAT 表:-
在这种情况下,不同的办公室沟通、讨论和决定(GRANT/DENY)相关案例(每个案例由 REFERRAL_ID 唯一标识)。无论情况如何,每个回复的 CHAT_ID 都是唯一的。办公室既可以作为新消息回复,也可以作为对某个较早回复的回复。PARENT_CHAT_ID 在前一种情况下将为空,而在后一种情况下它将具有直接父级的 CHAT_ID。
我的应用程序的目的是在登录时显示该办公室涉及的所有案例。这里的问题是我们有数百万个案例,乘以数百万个回复。因此,为了便于用户访问和交互,我必须对案例进行组织和分类,以便对每个案例进行适当的补救,而不是让最终用户感到头疼。
条件:- 某个时间点的案例将在不同办公室的不同选项卡中。
在上面的示例中,案例R1将出现在:- KL01 的“新鲜”中。KL12、KL13 的“处理中”。KL11 的“废弃”。
案例R2将出现在:- KL12 的“新鲜”。M001、M002、KL11 的“处理中”。“处置”没有。
像这样,所有百万个案例都将被分析并以表格格式放入相应的选项卡中。
我期望的是:根据上述条件,应将各个办公室的百万案例分类并显示为适当的标签(新鲜,正在处理,处置)。
我的问题:我应该使用什么样的表结构或查询来进行这种分析,时间和成本最低?我已经了解了各种可用的技术——嵌套集、Connect By...Prior 等。但我仍然不知道他们对我的问题的可行性。
javascript - 使用闭包表显示和编辑树的 JQuery 插件
我在数据库中有一个树形结构,我希望通过使用和的SQL
网页显示和编辑它。Javascript
PHP
MYSQL
我似乎找不到任何满足我需求的插件。我希望能够将新节点添加到树中,编辑和删除它们。
有人对这个有经验么?任何建议或意见都会很棒!谢谢。
mysql - 使用闭包表时,我将使用什么查询来获取同级记录?
如果我有以下模式和数据并且正在使用闭包表模式:
+----+----------+------------+--------+
| id | ancestor | descendant | length |
+----+----------+------------+--------+
| 1 | 2 | 2 | 0 |
| 2 | 2 | 12 | 1 |
| 3 | 2 | 13 | 1 |
| 4 | 2 | 14 | 1 |
| 5 | 2 | 15 | 1 |
| 10 | 12 | 12 | 0 |
| 11 | 13 | 13 | 0 |
| 12 | 14 | 14 | 0 |
| 13 | 15 | 15 | 0 |
| 9 | 17 | 20 | 1 |
| 8 | 17 | 19 | 1 |
| 7 | 17 | 18 | 1 |
| 6 | 17 | 17 | 0 |
| 14 | 18 | 18 | 0 |
| 15 | 19 | 19 | 0 |
| 16 | 20 | 20 | 0 |
+----+----------+------------+--------+
我的连接查询返回到我的主表会是什么样子以获取行 id 的所有同级行2
?
+----+----------+------------+--------+
| id | ancestor | descendant | length |
+----+----------+------------+--------+
| 3 | 2 | 13 | 1 |
| 4 | 2 | 14 | 1 |
| 5 | 2 | 15 | 1 |
+----+----------+------------+--------+
mysql - SQL中带有闭包的有向循环图
我正在尝试确定是否可以使用 SQL 中的闭包表(和/或可能的其他辅助表)轻松地对有向循环图进行建模。例如,假设我有这个有向图(全部指向下方):
我在用闭包表建模时遇到了麻烦。
我们会得到这张表:
- (祖先,后代,路径长度)
- (1, 1, 0)
- (2, 2, 0)
- (3, 3, 0)
- (4, 4, 0)
- (2, 4, 1)
- (3, 4, 1)
- (1, 4, 2)
移除 1 和 2 之间的边时,闭合表会崩溃。
第一个删除查询删除了 1 和 4 以及 3 和 4 之间的路径,这些路径不应该被删除
我无法使用闭包表找到解决方案,如果 4 指向 1,它会变得更加复杂。(变得循环)。
我还没有找到很多关于这个主题的文章。对于如何在 SQL 中实现这种类型的图,或者如果 SQL 根本不是这种类型的图的好选择,我将不胜感激。
entity-framework - 带有实体框架 6 的闭包表
我想使用实体框架 6 代码优先方法来实现分层数据结构(例如产品 --> 产品 2 ----> 产品 3、产品 2----> 产品 4)。有几种方法可用,但我认为闭包表方法可以满足我的所有要求。有人可以指导我如何有效地在实体框架 6 中实现闭包表方法或任何其他替代方法吗?
php - Depth in MYSQL and Closure Table Trees
How would I go about populating a closure table's depth/length column when inserting a new node to the tree?
The values in ancestor and descendant are IDs from another table that represent pages to be arranged in a tree structure.
Closure Table:
This will insert the ancestor and descendants properly but I'm not sure how to populate the depth column Insert Query:
What's the best way to go about this? Thanks a bunch!
mysql - 维护 SQL/MySql 闭包表中的节点顺序列
我已阅读并使用过http://www.mysqlperformanceblog.com/2011/02/14/moving-subtrees-in-closure-table/和http://www.slideshare.net/billkarwin/models-for-hierarchical-数据,但不能解决我的问题。
我的问题是:
如何维护一个整数列,该列描述了给定节点如何相对于闭包表结构中相同深度的其他节点进行排序?
目前,我正在使用以下 sql 语句插入按预期工作的新树节点:
我想过一些不同的解决方案,但看不到解决方案。一个想法是在每次插入时在 sql 触发器中“计算”给定深度的节点顺序。另一种解决方案是更新上述语句,支持直接更新深度顺序,如:
有没有人试过这个,如何解决?
php - 无法使用 ClosureTable 在 Laravel4 中迁移
我正在为 Laravel 使用 ClosureTable。我在迁移时遇到问题。
这是我的迁移脚本的样子:
//Page_Closure 迁移脚本
创建外键时发生错误。IDK 为什么,但是根据我的迁移队列,“页面关闭”首先在“页面”脚本之前运行。
sql - 递归查询挑战 - 简单的父/子示例
注意:在#postgresql 上的 RhodiumToad 的帮助下,我找到了一个解决方案,我将其发布为答案。如果有人可以改进这一点,请加入!
我无法使以前的递归查询解决方案适应以下包含多个“根”(无祖先)节点的有向无环图。我正在尝试编写一个查询,其输出通常称为闭包表:一个多对多表,存储从每个节点到其每个后代和自身的每条路径:
很难查明问题 - 我是否缺少node_relation
行?查询错了吗?
预期输出: