9得票3回答
改进修改的前序遍历树算法的可扩展性

我一直在思考修改的先序遍历树遍历算法,用于在平面表(如SQL)中存储树。 标准方法让我不喜欢其中一个特性:插入节点时,您必须平均触及N/2个节点(所有左侧或右侧高于插入点的内容)。 我看到的实现依赖于连续编号的值。这对于更新留下了没有余地。 这对并发和扩展来说似乎很糟糕。想象一下,您在存...

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

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

9得票3回答
Mysql:优化查找嵌套集树中的超级节点

我有一些层次结构的数据,采用嵌套集模型存储(表名:projects): 我的表结构如下(表名:projects): id, lft, rgt 1, 1, 6 2, 2, 3 3, 4, 5 4, 7, 10 5, 8, 9 6, 11, 12 7, 13, 14 ... 美化后的: ...

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

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

7得票1回答
SQL Server的嵌套集合与层次结构性能比较

我有一个分层数据结构。最常见的查询是“获取节点的父分支”和“获取节点的子树”。更新和插入不太可能经常发生。我正在选择嵌套集和层次结构标识之间。就我而言,在索引的列上搜索嵌套集应该非常快,但是我对层次结构标识的内部实现一无所知。为了实现最高的性能,我应该使用什么?

8得票2回答
我应该使用哪种层次模型?邻接、嵌套还是枚举?

我有一张表格,其中包含世界上所有地理位置及其关系的位置。 以下是一个示例,显示了层次结构。您将看到数据实际上存储为三个: 枚举路径 邻接列表 嵌套集 显然,数据永远不会改变。下面是英格兰布莱顿位置(woeid为13911)的直接祖先示例。 表格:geoplanet_places(有...

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

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

8得票1回答
层级评论系统 PHP

我希望实现像讨论区/Reddit一样的评论系统,我在我的评论数据库中有一个名为"id_answer"的字段(默认设置为0),当用户回复另一个评论时,此字段是父级评论的"id"。 我已经将该主题的评论放入了一个数组中,但我不知道如何过滤每个循环以获取类似以下内容的信息: - 评论层级1($a...

7得票3回答
MySQL和嵌套集:缓慢的JOIN(未使用索引)

I have two tables: localities: CREATE TABLE `localities` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `type` varch...

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

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