问题标签 [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 投票
6 回答
14800 浏览

sql - 有没有一种简单的方法来查询节点的子节点?

我最近一直在使用嵌套集模型中的废话。我喜欢为几乎所有有用的操作和视图设计查询。我坚持的一件事是如何选择节点的直接子代(并且只有子代,而不是进一步的后代!)。

老实说,我确实知道一种方法 - 但它涉及无法管理的 SQL 数量。我确信有一个更直接的解决方案。

0 投票
1 回答
861 浏览

mysql - 对 MPTT 结果集中的项目进行排序?

我正在使用MPTT(修改的预序树遍历)模型将分层数据存储在我的 MySQL 表中。(MPTT 模型:另一种描述是嵌套集模型。)。我的问题是:有没有人想出一种聪明的方法来对树上的查询结果进行排序?我可以只使用“按标签排序”,但结果集将按标签排序,而不考虑节点在树中的位置或深度。

这是我用来检索任意节点的树的查询示例,每个节点的深度:

根据http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

当然,这总是按项目在嵌套集中的位置排序。如果我想通过“lastName”或“accountBalance”或“town”来订购它们怎么办?这可以在 MySQL 中完成,还是你们认为我必须求助于我的脚本语言对结果进行排序?

0 投票
3 回答
1678 浏览

sql - 按名称对嵌套集进行排序,同时保持深度完整性

我正在使用嵌套集模型,该模型稍后将用于为我的网站构建站点地图。这是我的表结构。

如何按深度和名称排序?我可以

但是,由于某种原因,这并不能使孩子与其父母相匹配。

如您所见,“d”部门有“a”部门的孩子!

谢谢你。

0 投票
3 回答
8198 浏览

php - 嵌套集模型 PHP 库

嗨,我需要使用嵌套集模型来管理我网站上的产品类别。有谁知道一些用于处理 MySQL 中嵌套集的良好预建 PHP 库?

0 投票
1 回答
7022 浏览

php - 邻接表与嵌套集模型

我一直在研究 Adjacency List 和 Nested Set Model 以找到最佳的树解决方案。

到目前为止,我认为嵌套集模型的主要优点之一是我可以使用一个 SQL 查询和一些代码来获得一棵完整的树。但是更新/插入节点很复杂,整个树很容易损坏。

然后我偶然发现了这两个帖子:

具有单个查询的递归类别?

http://www.sitepoint.com/forums/showthread.php?t=570360

以下代码允许我将邻接列表与一个 SQL 查询一起使用。在我看来,邻接列表更容易更新并且不太可能破坏整个树。

你觉得这段代码怎么样?

生成多维数组来反映树形结构

准备一个带有嵌套节点的无序列表

0 投票
1 回答
334 浏览

php - 使用嵌套集模型在表中插入新节点的 SQL 查询无法执行

我目前正在使用嵌套集模型,并且我已经阅读了 MySQL 站点上的文章(Managing Hierarchical Data in MySQL)。

我直接从文章中得到以下查询:

我正在使用 PHP 和 MySQLi 函数来执行此语句,如下所示:

以下代码产生语法错误:

我希望有人可以帮助我。

0 投票
2 回答
1326 浏览

mysql - 在嵌套集模型中排序兄弟姐妹

我在使用 MySQL 时遇到了嵌套集模型的问题。我可以插入、删除、移动子树到另一个父级,一切正常。

但我不知道如何订购兄弟姐妹。例如,我有这些兄弟姐妹:

甲、乙、丙、丁、乙

我想在 D 之后移动 B,得到这个:

A、C、D、B、E

我发现了大量用于插入、删除等的存储过程,但没有一个可以订购兄弟姐妹。我发现的唯一一个是交换兄弟姐妹的程序,但这不是我想要实现的。

我尝试编写自己的,但它似乎很复杂,并且并非在所有情况下都有效。

如果您知道如何在他的兄弟姐妹之一之前或之后移动节点,我们将不胜感激。

0 投票
5 回答
703 浏览

jquery - jquery将新li添加到嵌套集模型

将新的 li 元素插入嵌套集模型的特定位置的最佳方法是什么?

例如,以下列表:

假设我想插入一个新的 li 作为 #list_2 的孩子,我可以这样做:

但是如果 parent 将是 #list_1 或 #list_4 任何想法都行不通!?

0 投票
1 回答
1660 浏览

entity-framework - EF 代码优先和嵌套集

我想在我的数据库中创建一个嵌套集模型。但是,我有一个问题,因为我不知道如何使用 Entity Framework Code-First 开始实现。

可以说我有这样的课程:

在我的模型中,我现在需要SubCategories集合。但是,当我在SubCategories集合中添加/删除子类别时,我想实现左右属性的自动式)更新。

可能吗?

感谢您提前回答!

最好的!

0 投票
0 回答
6030 浏览

mysql - MySQL中的嵌套集模型与物化路径

刚刚开始使用 mysql 进行我的第一个大型(ish)项目,技术知识非常有限。我面临着一个似乎很常见的问题,即如何表示我的树层次结构。我已经通过谷歌广泛地使用并开始使用嵌套集模型绘制项目,但左右列之间至少有 1000 个值。在深入研究之前,我想对更有经验的人可能会推荐什么有一个基本的了解。

我的项目涉及 4 个级别的节点,这些节点将用于搜索功能以缩小产品制造商的范围。每个级别都有几个选项。一种路径可能是:

  • 规格组(父)
    • 设施建设(5 个选项中的 1 个)
      • 混凝土(20 个选项中的 1 个)
        • 预制混凝土(10 个选项中的 1 个)
          • 检索到符合条件的制造商列表

一旦所有节点都添加到数据库中,我预计它们至少在几年内不会发生变化(它们来自行业标准的主文档)。制造商列表将(希望)经常添加。

任何帮助开始正确的道路将非常感激,以及相关材料的链接。

谢谢!