问题标签 [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 回答
250 浏览

php - 如何通过php自动创建菜单
  • 带有嵌套集模型的标签

我在此页面中看到了使用 MYSQL 在数据库中创建层次结构类别的嵌套集模型方法:

mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

但我不明白如何使用这些 mysql 结果为站点类别菜单制作嵌套列表。

例如,如果,我的表​​是这样的:

我想用php<ul> <li>自动制作类别菜单。

0 投票
0 回答
78 浏览

mysql - 如何创建 MySQL 视图以通过相关表显示嵌套集模型中每个节点的所有路径?

我有两个表,类别和产品。Categories 表是一个嵌套的集合模型。Products 表有一个唯一serial_number的字段。他们的架构是这样的:

分类:

产品 :

我想要的是创建一个视图以显示所有序列号及其类别路径:

生成此视图的最佳查询是什么?

0 投票
1 回答
306 浏览

c# - 一种从邻接模型 + 嵌套集模型 (MPTT) 绘制树层次结构的方法

我有一个带有 SQL Server DB 的 .NET Core 2.2 应用程序,我正在使用邻接模型 + 嵌套集模型存储用户的层次结构。我正在使用 EF Core。我的域如下所示:

最顶层的元素当然ParentId = nullDepthLevel = 0

我想将此结构显示为一些树结构图形。有没有人对此有一些想法或工作示例?

0 投票
1 回答
105 浏览

ruby-on-rails - 当模型是嵌套集时如何对数据库执行批量插入?

我有一个涉及嵌套集数据结构的模型,所以我使用了 act_as_nested_set gem。现在,我需要批量插入更多 10 万条记录。如果不是嵌套的集合数据结构,批量插入可能会更容易和更快捷。但是使用嵌套集,每次插入都会更新祖先链中的所有记录。所以,这需要很长时间。

我想创建内存树并维护 lft、rgt、深度、children_count、深度,然后批量插入它们,但我不确定在内存中创建 10 万个复杂对象是否是个好主意。

0 投票
0 回答
100 浏览

sql - 使用嵌套集模型同时删除多条记录

我正在尝试为我的 sql server 数据库创建已删除的触发器。删除记录后,触发器执行并更新树中其他节点的左、右、...。有关嵌套集模型的详细信息。这是我删除触发器的sql代码:

初始状态:

该代码适用于删除单个记录,例如:

正确的:

但是当我试图同时删除多条记录时,问题发生了:

错误的:

0 投票
2 回答
642 浏览

mysql - 在 MySQL 中动态创建 lft 和 rgt 列

谁能指导我如何使用 MySQL Query 动态地为表创建 lft 和 rgt 列(从根目录从左到右解析)?

我的表的结构如下所示:

我想要这样的结构:

0 投票
1 回答
174 浏览

javascript - 从 POJO 生成嵌套集模型

我一直在玩一些嵌套集模型(NSM)。我想做的一件事是能够从给定的 JavaScript 对象生成 NSM。

例如,给定以下对象:

我想生成一个像这样的对象数组。

也就是说 - 深度首先遍历对象,分配一个 ID 并计算层次结构中每个对象的左右边缘。这样每个节点都有一个唯一的 ID 和 NSM 的正确lftrgt

我尝试了各种方法,但似乎无法得到我想要的结果......我通过更改模型以使用节点名称和子节点的属性取得了一些成功 - 即

这给出了正确的结果,但需要更改输入数据......有没有办法使用原始data对象生成相同的嵌套集模型?

0 投票
1 回答
49 浏览

javascript - 在nodejs循环中每次更新后如何获取文档的新值?

我试图在一个循环中多次更新集合,但每次我得到 oldRight 的值都没有改变它总是给出第一个值。

我使用嵌套集模式将主题存储在 mongodb 中。

0 投票
0 回答
56 浏览

laravel - Laravel:如何检查 web.php 中的嵌套类别 url?

我通过nestedset laravel 包创建了嵌套类别

例如

现在,为了解决类别,我使用以下命令创建了一个 URL 链接:

所以我有这样的事情:

此外,为了解决一篇文章,我使用以下命令创建了一个 URL 链接:

所以我有这样的事情:

如何通过 web.php 访问控制器中的这些功能?

文章控制器

类别控制器中

我尝试了这些步骤:

web.php中

RouteServiceProvider.php启动函数

这种方法正确吗?如何将嵌套类别链接与文章链接分开?(并检查两者?)

0 投票
0 回答
16 浏览

mysql - 分层数据的Mysql“嵌套集”方法在-some-rows中返回错误的父名称

我在表中有以下“嵌套集”数据。

ID 姓名 左上角 rgt 主要的
1 场合 uurwerken 1 28 1
2 机械的 2 27
3 高山 3 4
4 作为 5 6
5 杜罗威 7 8
6 埃尼卡 9 10
7 预计到达时间 11 12
8 FE 13 14
9 FEF 15 16
10 费尔萨 17 18
11 高频 19 20
12 大手 21 22
13 佩瑟 23 24
14 PUW 25 26
15 Nieuwe uurwerken 29 60 1
16 石英 30 47
17 卡特林 31 32
18 公民 33 34
19 欧空局 35 36
20 FE 37 38
21 GUB 39 40
22 宫田 41 42
23 帕瑞宁 43 44
24 隆达 45 46
25 机械的 48 59
26 埃尼卡 49 50
27 FE 51 52
28 高频 53 54
29 佩瑟 55 56
30 隆达 57 58
31 复古场合 61 66 1
32 雪铁纳 62 63
33 天梭stemvork 64 65

我有这个查询来检索构建菜单所需的数据

哪个工作正常并返回以下数据

父母名字 ID 姓名 左上角 rgt 深度
场合 uurwerken 1 场合 uurwerken 1 28 0
场合 uurwerken 2 机械的 2 27 1
场合 uurwerken 3 高山 3 4 2
场合 uurwerken 4 作为 5 6 2
场合 uurwerken 5 杜罗威 7 8 2
场合 uurwerken 6 埃尼卡 9 10 2
场合 uurwerken 7 预计到达时间 11 12 2
场合 uurwerken 8 FE 13 14 2
场合 uurwerken 9 FEF 15 16 2
场合 uurwerken 10 费尔萨 17 18 2
场合 uurwerken 11 高频 19 20 2
场合 uurwerken 12 大手 21 22 2
场合 uurwerken 13 佩瑟 23 24 2
场合 uurwerken 14 PUW 25 26 2
Nieuwe uurwerken 15 Nieuwe uurwerken 29 60 0
Nieuwe uurwerken 16 石英 30 47 1
Nieuwe uurwerken 17 卡特林 31 32 2
Nieuwe uurwerken 18 公民 33 34 2
Nieuwe uurwerken 19 欧空局 35 36 2
Nieuwe uurwerken 20 FE 37 38 2
Nieuwe uurwerken 21 GUB 39 40 2
Nieuwe uurwerken 22 宫田 41 42 2
Nieuwe uurwerken 23 帕瑞宁 43 44 2
Nieuwe uurwerken 24 隆达 45 46 2
Nieuwe uurwerken 25 机械的 48 59 1
Nieuwe uurwerken 26 埃尼卡 49 50 2
Nieuwe uurwerken 27 FE 51 52 2
Nieuwe uurwerken 28 高频 53 54 2
佩瑟 29 佩瑟 55 56 2
隆达 30 隆达 57 58 2
复古场合 31 复古场合 61 66 0
雪铁纳 32 雪铁纳 62 63 1
天梭stemvork 33 天梭stemvork 64 65 1

这看起来不错,但是在 ID 29 和 30 的行中,父名称突然与节点名称相同,我不知道为什么?