问题标签 [nested-sets]

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 投票
2 回答
584 浏览

mysql - 嵌套集 SQL 问题

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html

我尝试通过 $this->db->query() 在 codeigniter 中运行此示例代码,但出现此错误

我确信数据库不是问题,因为我在 phpmyadmin 中运行了这个 SQL 并且它有效。但是当我通过代码运行时,我得到一个错误。这可能是一个codeigniter问题吗?文件编码问题?query() 函数是否同时支持多个查询?我难住了。

0 投票
1 回答
899 浏览

mysql - 获取MySQL中给定类别的子类别下的项目数

假设我们有这张桌子

MySQL 中有没有办法获取一个类别拥有的项目数(包括那些属于其子项的项目)?像这样的东西...

我无法连接获取 category_ids 的查询和获取子类别计数的查询。

0 投票
2 回答
1620 浏览

ruby-on-rails - 使用 awesome_nested_set 按字母顺序排序类别选择菜单

在 Rails 3 中使用 awesome_nested_set,我创建了一个分层类别系统。为了在视图中显示类别选择器,我使用了以下代码:

<%= form.select :parent_id, options_for_select(nested_set_options(Category, @category) {|i| "#{'-' * i.level} #{i.name}" }.unshift(["No Parent", nil]), @category.parent_id) %>

我正在尝试按字母顺序逐级对类别进行排序。如果我将其更改nested_set_options(Category, @category)nested_set_options(Category.order("name"), @category)这将按名称重新排序整个类别列表;我想要做的是按名称按字母顺序重新排序每个节点的子节点。

例如,我希望生成的选择菜单按如下方式排序:

0 投票
1 回答
488 浏览

php - Propel:使用嵌套集聚合列......如何?

我确定我遗漏了一些东西,因为这看起来应该很容易使用这种nested_set行为。

我有多个类别的列表。这些类别使用​​ Propel中的行为进行管理。类别也有一个调用,用于计算每个类别中的列表nested_setaggregate_columnlisting_count

对于每个单独的类别,这都非常有效。我遇到的麻烦是累积该类别每个祖先的总数。

例如,“Sport”类别有 3 个子项,分别称为“Golf”、“Football”和“Tennis”。“网球”类别有 2 个孩子,分别称为“草”和“粘土”。将列表添加到“Clay”时,我还需要更新“Sport”和“Tennis”的总数。

我想不出一种(好的)方法来实现这一点。任何人都可以解释一下吗?

0 投票
1 回答
2028 浏览

java - 寻找使用hibernate存储嵌套数据的有效方法

我一直在尝试找到一种有效的方法来表示 java/hibernate 中的嵌套数据。我最初的解决方案是使用自引用连接的父/子列表,但是在使用 SQL 构建报表时,这种技术存在明显的缺陷。我正在研究嵌套集和物化路径,但我希望有一种方法可以表示 hibernate 原生的嵌套数据,这对于通过 SQL 查询也很有效。

0 投票
1 回答
531 浏览

zend-framework - Doctrine 1.2 Nested Set 真的很慢。我该如何改进它。(NestedSet)

我使用 Doctrine 1.2 执行一个简单的查询。

这是查询。

为什么这么慢?


任何人都有解决方案来获得更好的性能。
谢谢

0 投票
2 回答
11506 浏览

php - 如何使用 PHP 和 MySQL 将父子(邻接)表转换为嵌套集?

我花了最后几个小时试图在网上找到这个问题的解决方案。我找到了很多关于如何从嵌套集合转换为邻接的例子......但很少有相反的例子。我发现的示例要么不起作用,要么使用 MySQL 过程。不幸的是,我不能为这个项目使用程序。我需要一个纯 PHP 解决方案。

我有一个使用以下邻接模型的表:

我想将其转换为下面的嵌套集表:

这是我需要的图像:

嵌套树形图

我有一个函数,基于这个论坛帖子(http://www.sitepoint.com/forums/showthread.php?t=320444)的伪代码,但它不起作用。我得到多行具有相同的左侧值。这不应该发生。

这是上述脚本的输出。

插入nested_table( id, lft, rgt, category) 值(NULL, '2', '5', 'Hard Cover' )

插入nested_table( id, lft, rgt, category) 值( NULL, '2', '7', 'Large Format' )

插入nested_table( id, lft, rgt, category) 值( NULL, '1', '8', 'Books' )

插入nested_table( id, lft, rgt, category) 值( NULL, '1', '10', 'CD's' )

插入nested_tableid,,,, )值(NULL lft,'10','13','Vintage')rgtcategory

插入nested_tableid,,,, )值(NULL,'1','14','杂志' lftrgtcategory

插入nested_tableid,,,, )值(NULL lft,'0','15','ROOT')rgtcategory

正如你所看到的,有多个行共享“1”的 lft 值,“2”也是如此。在嵌套集中,left 和 right 的值必须是唯一的。下面是一个如何手动为嵌套集合中的左右 ID 编号的示例:

如何对嵌套集进行编号

图片来源:Gijs Van Tulder,参考文章

0 投票
2 回答
2754 浏览

mysql - 我应该使用哪种分层模型?邻接、嵌套还是枚举?

我有一张表,其中包含世界上所有地理位置的位置及其关系。

这是一个显示层次结构的示例。您将看到数据实际上存储为所有三个

  • 枚举路径
  • 邻接表
  • 嵌套集

数据显然也永远不会改变。以下是英格兰布莱顿地区的直系祖先的示例,其 woeid 为 13911。

表:(有 560 万行) 大图:httpgeoplanet_places : //tinyurl.com/68q4ndx 祖先

然后我有另一个名为entities. 此表存储我想映射到地理位置的项目。我存储了一些基本信息,但最重要的woeid是我存储了来自geoplanet_places. 在此处输入图像描述

最终该entities表将包含数千个实体。而且我想要一种能够返回包含实体的所有节点的完整树的方法。

我计划创建一些东西来促进基于地理位置的实体的过滤和搜索,并能够发现在该特定节点上可以找到多少实体。

所以如果我的表中只有一个实体entities,我可能会有这样的东西

`地球 (1)

英国 (1)

英格兰 (1)

东萨塞克斯 (1)

布莱顿霍夫城 (1)

布莱顿 (1)`

然后假设我有另一个位于德文郡的实体,然后它将显示如下内容:

地球 (2)

联合王国 (2)

英格兰 (2)

德文 (1)

东萨塞克斯 (1) ... 等

将说明每个地理位置“内部”有多少实体的(计数)不需要是活的。我可以忍受每小时生成我的对象并缓存它。

目的是能够创建一个界面,该界面可能一开始只显示具有实体的国家/地区。

所以喜欢

Argentina (1021), Chile (291), ..., United States (32,103),United Kingdom (12,338)

然后,用户将单击一个位置,例如 United Kingdom,然后将获得所有直接子节点,这些子节点是 United Kingdom 的后代,并且其中有一个实体。

如果英国有 32 个县,但最终只有 23 个县有实体存储在其中,那么我不想显示其他 9 个。它只是位置。

该站点恰当地展示了我希望实现的功能:http: //www.homeaway.com/vacation-rentals/europe/r5 在此处输入图像描述

你建议我如何管理这样的数据结构?

我正在使用的东西。

  • PHP
  • MySQL
  • 索尔

我计划让钻取尽可能快。我想创建一个 AJAX 界面,搜索时会无缝。

我也很想知道您建议在哪些列上建立索引。

0 投票
2 回答
1121 浏览

ruby-on-rails - 如何显示关联记录子集的表单,其中一些还不存在?

我有任务和用户。当用户完成一项任务时,我会创建一个 Completion,其中有一个字段供用户指示他们花费了多长时间。我需要一个表单来显示所有任务及其完成状态和 time_spent 属性。提交时,应该更新存在的完成并创建新的完成。如果可能的话,我想在 Formtastic 中执行此操作,但我会对基本的 Rails 3 解决方案感到满意。

一个额外的方面是我只想显示一组特定的任务,例如属于里程碑的任务。我是否应该在 Milestone 控制器上创建一个表单来发布到 Completions 控制器?

更新我已经找了好几天了, 我发现了很多 死胡同 Rails 表单中的Multiple objects很接近,但它要求所有链接对象都已经存在。

这个问题的不同之处在于,一些链接还不存在,并且没有用于嵌套链接的单一模型。例如,Ryan Daigle 的嵌套对象表单帖子)我已经在一个表单中进行了这项工作以进行编辑用户的所有可能完成,但我需要以一种形式编辑可能完成的子集。我是否需要为has_manyCompletions 和belongs_toUser 创建一个冗余对象 MilestoneCompletions?ActiveModel 可以has_many吗?

0 投票
4 回答
2200 浏览

sql - 从嵌套集(perl、sql、jquery)生成 JSON

我在数据库中有内容页面(使用嵌套集),我需要通过 jQuery jsTree 插件显示它。它需要返回带有如下数据的 JSON:

我需要做什么?

我可以将散列数组转换为 JSON,但我不明白如何生成数组。

样本数据:

我需要得到: