问题标签 [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.
ruby-on-rails - Rails、Restful Routes 和很棒的嵌套集
我有一个数据结构,它基本上是一个使用 :wesome 嵌套集的树:
我想要实现的是像这样的路线
我知道我可以通过制作一个单独的控制器来伪造它,但它似乎有点不干。有没有更好的方法来做到这一点?
sql - 计算嵌套集中一个级别中的节点数
我正在使用 Ruby(Ruby on Rails)并且有一组大约 2000 个节点的嵌套。每个节点只能有两个孩子。
确定每个级别中有多少个节点的最佳方法是什么?我是否必须爬过整棵树来寻找兄弟姐妹才能做到这一点?
谢谢!
sql - MySQL嵌套集 - 如何找到节点的父节点?
我有您运行的磨机嵌套集层次结构类型设置,其中包含以下列:
表名:
列:
有谁知道确定节点父节点的查询?
我读了几个地方,在你的表中也有一个parent_id列来跟踪这一点很方便,但这似乎是多余的,如果在添加/时错误执行查询,它似乎可能与嵌套集不同步移除/移动集合内的任何东西。
forms - Symfony:模型翻译 + 嵌套集
我正在使用带有 Doctrine 的 Symfony 1.2。我有一个带有两种语言翻译的 Place 模型。这个 Place 模型也有一个嵌套的集合行为。
我现在在创建属于另一个节点的新位置时遇到问题。我尝试了两种选择,但都失败了:
1 个选项
如果我合并表单,会发生什么 place_id 字段的值是一个数组。我想是因为它正在等待一个带有 id 的真实对象。如果我尝试设置 place_id='' 则会出现另一个错误。
2个选项
现在错误是:
看sql,id没有定义;所以它不能是重复的记录(我有一个唯一的键(id,lang))
知道会发生什么吗?
谢谢!
symfony1 - 推动 NestedSet 创建平衡树
我正在尝试使用 Propel 的 NestedSet 功能。但是,我错过了一些关于插入的东西,这样树在创建时是平衡的(即水平填充它)。
假设我有这些元素:
我想插入 r2c3 作为 r1c2 的第一个孩子(即在第 3 行开始之前填充第 2 行)。
我的第一个尝试是创建这个函数:
但是,这将在 r2c1 上插入一个孩子,而不是在我想要的 r1c2 上。
有没有办法以某种方式将条目插入到下一个可用位置的树中?
TIA 迈克
php - 嵌套集模型是否适用于具有许多类别(多对多)的文章?
很长时间以来,我一直在使用分层数据的邻接模型,并在互联网上搜索一种更有效的遍历树的方法,直到我昨天读到了嵌套集。我喜欢这个想法,但有一些疑问............
现在我只想知道是否可以将嵌套集模型用于多对多关系。例如,文章属于多个类别。
我在互联网上做了一些研究,找不到任何有意义的结论来解决这个紧迫的问题,所以如果你们能对此有所了解,我将不胜感激。
提前致谢!
sql - Mysql:优化在嵌套集合树中查找超级节点
我在嵌套集模型(表:项目)中有分层数据:
我的表(项目):
漂亮的印刷品:
要找到节点 3 的最近超级节点(知道它的 lft 值),我可以这样做
这给了我到节点 3 的路径中的项目列表。然后通过分组并找到结果的 MAX(projects.lft),我得到最近的超级节点。但是,我似乎无法让这个查询快速运行,它不会使用我定义的索引。解释 说:
Mysql 知道要使用什么索引,但仍然必须遍历所有 10 行(或我的实际表中的 100k)。
如何让 MySql 正确优化此查询?我在下面包含了一个测试脚本。
asp.net - 如何查询具有多个根和过滤的嵌套集模型
如何查询具有多个根的嵌套集模型,例如同一张表中的树?目前,我添加了一个名为“Root”的额外列,指示所有子树节点的根节点的 ID,但是,我无法弄清楚 sql 以正确的顺序检索它们
我指的是文章在 MySQL 中管理分层数据。
通常,按顺序检索项目的查询是按左叶值的顺序,但是如果有多个根,您可能会一个接一个地得到多个“left:1”,这样就破坏了树。
我目前正在使用与 SQL 完全无关的解决方案。我在我的 C# 代码中重新安排了它们,但我只是想知道是否有办法用 SQL 来完成它,这样可以节省我在 Web 服务器上花费的时间
最后一个问题。如果我有一个过滤器,它会从树中过滤掉一些数据,你如何处理它?
说
- 任务 1(进行中)
- 任务 2(主动)
- 任务 3(主动)
- 任务 2(主动)
如果过滤器要显示所有状态为“活动”的树,你会怎么做?
nested-sets - 线程评论系统嵌套集 - 多个根?
我正在为主题实现一个线程评论系统,即有一个主题,然后对每个主题进行线程评论。
嵌套集“似乎”是流行的方式,但我应该如何实现每个线程的根?例如:
评论可能是一个巨大的嵌套集。我可能是错的,但它似乎会像一棵树一样慢。
每个主题的评论可以有一个根线程。但是看起来我必须为每个主题创建一个空白根,空白根似乎很奇怪。
每个第一级评论都可以是一个根。这消除了空白根,但似乎会有大量的根线程,并且说要呈现一个包含 50 个第一级评论的页面,我必须做 50 个查询:S。
我在这里遗漏了什么,有没有更好的方法来做到这一点?我倾向于空白根,但它似乎不太正确
谢谢。