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

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

8得票3回答
获取某个分类及其子分类的所有产品(Rails,awesome_nested_set)

我正在开发一款电子商务应用程序,我正在努力理解以下问题: 我通过awesome_nested_set插件实现了我的类别。如果我通过选择一个类别列出我的文章,一切都很好,但是对于某些链接,我想显示一个类别和其子类别的所有产品。 这里是控制器代码,仅适用于一个类别: # products_...

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 ... 美化后的: ...

9得票8回答
将嵌套集模型转换为 <ul>,但隐藏“关闭”的子树

基于将修改的先序树遍历模型(嵌套集)转换为&lt;ul&gt;的问题解答,我找到了正确的代码来显示整个树。现在我需要始终显示第一层(深度=0)和活动列表项的同级和子级。我的目标是当用户选择具有更多子项的列表项时,展开树形结构的可见部分。 所以,如果我有这个列表: 1. item 2. it...

8得票7回答
如何将嵌套集中的所有记录呈现为真实的HTML树

我正在我的Rails项目中使用awesome_nested_set插件。我有两个模型,看起来是这样的(简化): class Customer &lt; ActiveRecord::Base has_many :categories end class Category &lt; Act...

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

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

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

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

8得票2回答
检索每个节点的所有祖先的嵌套集查询

我有一个MySQL查询,我认为它可以很好地检索每个节点的所有祖先,从顶部节点开始,一直到其直接节点。但是当我将第五级添加到嵌套集合中时,它就出现了故障。 以下是示例表、查询和SQL Fiddles: 四级嵌套集合: CREATE TABLE Tree (title varchar(20)...

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

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

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

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