问题标签 [nested-set-model]

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 回答
336 浏览

sql - 对嵌套集中的兄弟姐妹进行排序

我在 SQLite 数据库中有一个嵌套集模型。兄弟姐妹需要按字母顺序排序。下面是全集,不过需要排序的兄弟是第二层。如您所见,它们按以下顺序开始:

但是需要按这个顺序排序:

我有 Joe Celko 的 Trees and Hieracrchies in SQL for Smarties,它有一些移动节点的例子,比如将 Chaman 移动到前面。我还在网上找到了类似的示例,但我找不到任何可以对所有兄弟进行排序的 SQL 示例。

如何对兄弟姐妹进行排序?

有关我如何创建上述数据的详细信息...

我有一个将填充嵌套集的测试应用程序。所以我简单地创建了两次,一次是乱序的名称,第二次是为了显示所需的结果。至于实际从数据库中获取这些数据,我使用了这个查询:

订购之所以重要,是因为订单将由最终用户控制。他们将能够以任何一种方式进行排序,并且还可以移动各个节点,以便兄弟姐妹按照他们想要的顺序显示。因此,树中的数据必须按正确的顺序排列,这一点很重要。

(PS 在真实数据中有一个 ObjectID,它是一个唯一标识符,它允许名称在嵌套集中重复)

0 投票
1 回答
209 浏览

mysql - 使用嵌套集模型按深度计算项目数

我正在为我的数据库使用嵌套集模型(来自这里: http: //mikehillyer.com/articles/managing-hierarchical-data-in-mysql/),它工作得很好,但是......

从“子树的深度”请求中,我想要另一个结果。

初步结果:

我想要按深度计算项目数,例如来自初始数据:

我尝试使用 group by 和/或 count(),但它不起作用......

谢谢你的帮助!

0 投票
1 回答
3074 浏览

jquery - 如何使用 AJAX 更新 simple_form 输入字段?

我有一个simple_form输入字段,它是我需要在触发onchange事件时异步更新的表单的一部分。

我需要更新的字段显示为一个选择框,因为它是一个集合。但是该集合表示嵌套集合模型的记录。因此,当用户选择一个特定值时,我希望能够更新同一个字段及其子字段,并让用户可以选择选择任何子字段作为同一字段的值。

问题是,我如何只更新该字段而不触及表单的其余部分。

只是为了让我了解一下我当前的设置:表单看起来像这样:

@product 是属于Location的 新Product@locations是Location的集合,每个都有_many Product 因此使用simple_form关联方法 Location 也作为_as_nested_set

我的 routes.rb 中有这个

我需要帮助来完成控制器操作:

我不确定上面的控制器应该呈现的部分视图中应该包含哪些代码。

0 投票
1 回答
13988 浏览

mysql - MySQL分层数据的邻接列表模型与嵌套集模型?

在 MySQL中有两种处理层次结构数据的方法

  1. 邻接表模型
  2. 嵌套集模型

邻接列表模型的一个主要问题是我们需要对每个节点运行一次查询以获取层次结构的路径。

嵌套集模型中不存在这个问题,但是对于每个添加的节点,需要对所有其他的左右值进行MySQL UPDATE

我的分层数据不是静态数据,比如电子商务的产品类别。是按层次顺序不断注册用户。

在我的应用程序中,虽然有很多常量用户注册,但我还需要获取层次结构路径,直到到达层次结构中的第一个节点。

分析我的情况,两种选择中的哪一种最适合我的应用程序?

0 投票
0 回答
479 浏览

php - getNestedList() 方法似乎在 etrepat/baum laravel 包中返回错误的顺序

根据etrepat/baum Docs,getNestedList()必须返回一个键值对数组,用分隔符指示节点的深度。

这是我的表数据和结构:
在此处输入图像描述

通过此代码:

结果是:

在此处输入图像描述

虽然它应该看起来像这样

在此处输入图像描述

意味着任何子类别必须在它的父类别之后立即出现,并按lft列字段排序但是getNestedList()不是这个 wotk 并以插入到表中的相同方式返回类别。

我怎样才能达到我的目的?

0 投票
0 回答
41 浏览

sql - 查询树结构以获取其子项

我有一个由组织中的人员组成的树(嵌套集)表。每个人在组织中都有一个级别。我正在尝试形成一个查询,该查询将使我获得一个人(该人之下的所有人)的下线(孩子),除非他们属于与该人具有相同或更高级别的人。(但我想保留相同或更高级别的人)。我不需要确切的查询,我只是想获得有关如何实现它的提示或想法。

0 投票
0 回答
83 浏览

rdbms - 我们可以将循环图的邻接表模型转换为 RDBMS 中的嵌套集模型吗?

如果循环图存储在邻接表模型中,那么我们使用非常慢的 CTE 进行查询。但是如果有办法将循环图的邻接表模型转换为嵌套集模型,那么我猜查询可能会运行得更快一些。我知道对于一棵树可以进行转换,但我没有找到一种方法来处理图形,尤其是循环图。

如果我们不能转换为嵌套集模型,那么除了邻接表和 CTE 之外,在 RDBMS 中存储和查询循环图的最佳方法是什么?

0 投票
0 回答
164 浏览

php - etrepat/Baum 使用两张桌子

我正在尝试将 Baum 与两个表一起使用,但我无法实现。我的意图是有一个表来存储类别信息作为 id、名称、slug 和状态以及具有外键 category_id 的普通 Baum 表。在 cadegoria 中,注册正在尝试完成Tree :: create ([ 'name' => $ category-> name, 'category_id' => $ category-> category_id]);,但它不起作用。有人有小费吗?

mmy模型文件为:

如果我评论受保护的属性有效。

0 投票
1 回答
131 浏览

sql - 如何从嵌套集模型中的一个级别获取所有节点?

是否有一种低成本的方式来查询具有嵌套集模型的表,以便从特定级别获取节点集合?

即如何从我的树级别 n 中获取 IEnumerable?即如何从我的树级别 n-1 获得 IEnumerable?

谢谢!

0 投票
1 回答
245 浏览

nested-set-model - 在嵌套集中查找最低共同祖先

我正在寻找一种方法来找到嵌套集中的最低共同祖先可以使用单个方程找到。

在此处输入图像描述

例如,来自以下图片:https ://commons.wikimedia.org/wiki/File:Clothing-hierarchy-traversal.svg

西装和女士之间的 LCA 是服装。我可以使用基于级别的系统来确定父级会面的位置,但这种情况的用例是在数据库设计中,因此提高级别将不利于性能。

我希望我可以使用西装 (3:8) 和女士 (10:21) 的单一计算来得出服装的组合 (1:22),也就是说,如果存在这样的等式。