25得票13回答
在嵌套集中移动节点

我需要一条MySQL查询语句,可以在嵌套集中移动一个节点及其所有子节点。我找到了这个网站,但是那个函数似乎太不符合逻辑了——在嵌套集模型中没有universeid或treeid,而且代码本身比所需的要长得多。表中唯一多余的列是parent。 我不能只是删除并重新添加该节点,因为它将丢失其ID。

24得票4回答
如何使用SQL修复数据库中损坏的MPTT树(嵌套集)?

我有一个使用MySQL存储的100,000多个记录的MPTT树,使用lft、rght和parent_id列。现在左/右值已经损坏,但父ID仍然完好无损。在应用程序层修复它需要大量的查询。是否有一种好的方法将负担放在数据库上,并仅使用SQL重新计算左/右值呢? 为了澄清,我需要重新计算嵌套...

23得票6回答
从父/子节点的扁平列表构建层次结构对象

我有一个嵌套层级的项列表,并尝试将此列表解析为实际对象层次结构。我正在使用修改过的先序树遍历来存储/遍历此列表,因此我拥有包括所有子节点按其"left"值排序的子集树。 例如,给定以下树: Item A Item A.1 Item A.2 Item A.2.2 Item B I...

21得票2回答
如何使用PHP和MySQL将父子关系(邻接表)转换为嵌套集?

我花了几个小时在网上寻找解决这个问题的方法。我找到了很多关于如何将嵌套集转换为相邻集的例子...但很少有反向的例子。我找到的例子要么不起作用,要么使用MySQL程序。不幸的是,我不能在这个项目中使用程序。我需要一个纯PHP的解决方案。 我有一个使用下面邻接模型的表: id ...

21得票7回答
将修改的前序树遍历模型(嵌套集)转换成<ul>标签

我试图将按树遍历模型设置的层次化数据转换为 &lt; ul>,以便在我的网站上展示。 这是我的代码:function getCats($) { // retrieve all children of $parent $query = "SELECT max(rght) as max ...

18得票8回答
如何使用嵌套集模型对存储在树形结构中的数据进行排序?

当我提到嵌套集模型时,我指的是这里所描述的内容。我需要构建一个新系统来存储“类别”(我想不出更好的词语)在用户定义的层次结构中。由于嵌套集模型优化了读取而不是写入操作,因此我决定使用它。不幸的是,在对嵌套集进行研究和测试时,我遇到了如何显示具有排序节点的分层树的问题。例如,如果我有以下层次结构...

12得票4回答
允许一个分类拥有多个父级,是否有意义?还有其他选择吗?

简短问题:如何管理出现在多个类别下的产品类别?这样做是不好的做法吗? 背景信息: 我们有一个类别如下的产品数据库:Products -Arts and Crafts Supplies -Glue -Paper Clips -Construction Paper ...

12得票8回答
MySQL嵌套集 - 如何找到节点的父节点?

我有一个普通的嵌套集合层次结构类型设置,具有以下列: 表名称:myset 列:id, name, lft, rgt 有没有人知道一个查询来确定节点的父级? 我在几个地方读到过,还有在你的表中添加一个parent_id列会很方便地跟踪这一点,但它似乎是多余的,如果在集合内添加/删除/移动任何...

11得票2回答
嵌套区间是否是解决嵌套集合(修改的前序遍历)关系型数据库性能退化的可行方案?

Joe Celko的嵌套集合(修改的先序遍历)已知存在性能随着树的增大而显著降低等限制。 Vadim Tropashko提出了嵌套间隔,并在本文中提供了示例和理论解释:http://arxiv.org/html/cs.DB/0401014 这是一个可行的解决方案吗?是否有任何可行的示例(使...

11得票5回答
如何在MySQL和PHP中使用嵌套集获取结构化结果?

深度没有限制。 如何获取结构化的分支甚至整个树? 该定义来自于这里:在MySQL中管理分层数据