问题标签 [nested-sets]

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

ruby-on-rails - Rails、Restful Routes 和很棒的嵌套集

我有一个数据结构,它基本上是一个使用 :wesome 嵌套集的树:

我想要实现的是像这样的路线

我知道我可以通过制作一个单独的控制器来伪造它,但它似乎有点不干。有没有更好的方法来做到这一点?

0 投票
2 回答
987 浏览

sql - 计算嵌套集中一个级别中的节点数

我正在使用 Ruby(Ruby on Rails)并且有一组大约 2000 个节点的嵌套。每个节点只能有两个孩子。

确定每个级别中有多少个节点的最佳方法是什么?我是否必须爬过整棵树来寻找兄弟姐妹才能做到这一点?

谢谢!

0 投票
8 回答
21998 浏览

sql - MySQL嵌套集 - 如何找到节点的父节点?

我有您运行的磨机嵌套集层次结构类型设置,其中包含以下列:

表名:

列:

有谁知道确定节点节点的查询?

我读了几个地方,在你的表中也有一个parent_id列来跟踪这一点很方便,但这似乎是多余的,如果在添加/时错误执行查询,它似乎可能与嵌套集不同步移除/移动集合内的任何东西。

0 投票
1 回答
2139 浏览

forms - Symfony:模型翻译 + 嵌套集

我正在使用带有 Doctrine 的 Symfony 1.2。我有一个带有两种语言翻译的 Place 模型。这个 Place 模型也有一个嵌套的集合行为。

我现在在创建属于另一个节点的新位置时遇到问题。我尝试了两种选择,但都失败了:

1 个选项

如果我合并表单,会发生什么 place_id 字段的值是一个数组。我想是因为它正在等待一个带有 id 的真实对象。如果我尝试设置 place_id='' 则会出现另一个错误。

2个选项

现在错误是:

看sql,id没有定义;所以它不能是重复的记录(我有一个唯一的键(id,lang))

知道会发生什么吗?

谢谢!

0 投票
1 回答
376 浏览

symfony1 - 推动 NestedSet 创建平衡树

我正在尝试使用 Propel 的 NestedSet 功能。但是,我错过了一些关于插入的东西,这样树在创建时是平衡的(即水平填充它)。

假设我有这些元素:

我想插入 r2c3 作为 r1c2 的第一个孩子(即在第 3 行开始之前填充第 2 行)。

我的第一个尝试是创建这个函数:

但是,这将在 r2c1 上插入一个孩子,而不是在我想要的 r1c2 上。

有没有办法以某种方式将条目插入到下一个可用位置的树中?

TIA 迈克

0 投票
1 回答
360 浏览

php - 嵌套集模型是否适用于具有许多类别(多对多)的文章?

很长时间以来,我一直在使用分层数据的邻接模型,并在互联网上搜索一种更有效的遍历树的方法,直到我昨天读到了嵌套集。我喜欢这个想法,但有一些疑问............

现在我只想知道是否可以将嵌套集模型用于多对多关系。例如,文章属于多个类别。

我在互联网上做了一些研究,找不到任何有意义的结论来解决这个紧迫的问题,所以如果你们能对此有所了解,我将不胜感激。

提前致谢!

0 投票
3 回答
2890 浏览

sql - Mysql:优化在嵌套集合树中查找超级节点

我在嵌套集模型(表:项目)中有分层数据:

我的表(项目):

漂亮的印刷品:

要找到节点 3 的最近超级节点(知道它的 lft 值),我可以这样做

这给了我到节点 3 的路径中的项目列表。然后通过分组并找到结果的 MAX(projects.lft),我得到最近的超级节点。但是,我似乎无法让这个查询快速运行,它不会使用我定义的索引。解释 说:

Mysql 知道要使用什么索引,但仍然必须遍历所有 10 行(或我的实际表中的 100k)。

如何让 MySql 正确优化此查询?我在下面包含了一个测试脚本。

0 投票
1 回答
3293 浏览

asp.net - 如何查询具有多个根和过滤的嵌套集模型

如何查询具有多个根的嵌套集模型,例如同一张表中的树?目前,我添加了一个名为“Root”的额外列,指示所有子树节点的根节点的 ID,但是,我无法弄清楚 sql 以正确的顺序检索它们

我指的是文章在 MySQL 中管理分层数据

通常,按顺序检索项目的查询是按左叶值的顺序,但是如果有多个根,您可能会一个接一个地得到多个“left:1”,这样就破坏了树。

我目前正在使用与 SQL 完全无关的解决方案。我在我的 C# 代码中重新安排了它们,但我只是想知道是否有办法用 SQL 来完成它,这样可以节省我在 Web 服务器上花费的时间

最后一个问题。如果我有一个过滤器,它会从树中过滤掉一些数据,你如何处理它?

  • 任务 1(进行中)
    • 任务 2(主动)
      • 任务 3(主动)

如果过滤器要显示所有状态为“活动”的树,你会怎么做?

0 投票
1 回答
944 浏览

nested-sets - 线程评论系统嵌套集 - 多个根?

我正在为主题实现一个线程评论系统,即有一个主题,然后对每个主题进行线程评论。

嵌套集“似乎”是流行的方式,但我应该如何实现每个线程的根?例如:

  • 评论可能是一个巨大的嵌套集。我可能是错的,但它似乎会像一棵树一样慢。

  • 每个主题的评论可以有一个根线程。但是看起来我必须为每个主题创建一个空白根,空白根似乎很奇怪。

  • 每个第一级评论都可以是一个根。这消除了空白根,但似乎会有大量的根线程,并且说要呈现一个包含 50 个第一级评论的页面,我必须做 50 个查询:S。

我在这里遗漏了什么,有没有更好的方法来做到这一点?我倾向于空白根,但它似乎不太正确

谢谢。

0 投票
1 回答
371 浏览

php - 用于在 MySQL 中处理嵌套集的 PHP 库

我读了这篇文章在 MySQL 中管理分层数据

在本文的最后,它写了关于在 MySQL 中处理嵌套集合的 PHP 库。

有谁知道他在谈论哪些 PHP 库?