标签: nested-sets

Ruby on Rails中的嵌套路由

我的模型类是:

class Category < ActiveRecord::Base
  acts_as_nested_set
  has_many :children, :foreign_key => "parent_id", :class_name => 'Category'
  belongs_to :parent, :foreign_key => "parent_id", :class_name => 'Category' 


  def to_param
    slug
  end
end
Run Code Online (Sandbox Code Playgroud)

是否有可能像这样的递归路线: /root_category_slug/child_category_slug/child_of_a_child_category_slug......等等

感谢您的任何帮助 :)

ruby routing ruby-on-rails nested-sets

7
推荐指数
1
解决办法
1945
查看次数

处理mysql中的嵌套集?

我决定关注http://www.artfulsoftware.com/mysqlbook/sampler/mysqled1ch20.html

所以现在我正在寻找代码的一些帮助.

我正在使用他们的数据进行测试,因此,我将树可视化为:

    array('value' => 'Richard Shakespeare',
        array('value' => 'Henry',
            array('value' => 'Joan'),
            array('value' => 'Margaret'),
            array('value' => 'William',
                array('value' => 'Susana',
                    array('value' => 'Elizabeth Hall',
                        array('value' => 'John Bernard'))),
                array('value' => 'Hamnet'),
                array('value' => 'Judith',
                    array('value' => 'Shakespeare Quiney'),
                    array('value' => 'Richard Quiney'),
                    array('value' => 'Thomas Quiney'))),
            array('value' => 'Gilbert'),
            array('value' => 'Joan',
                array('value' => 'William Hart'),
                array('value' => 'Mary Hart'),
                array('value' => 'Thomas Hart'),
                array('value' => 'Micheal Hart')),
            array('value' => 'Anne'),
            array('value' => 'Richard'),
            array('value' => 'Edmond')), …
Run Code Online (Sandbox Code Playgroud)

php mysql nested-sets

7
推荐指数
1
解决办法
1142
查看次数

MySQL和嵌套集:慢JOIN(不使用索引)

我有两张桌子:

地点:

CREATE TABLE `localities` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL,
  `type` varchar(30) NOT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `lft` int(11) DEFAULT NULL,
  `rgt` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `index_localities_on_parent_id_and_type` (`parent_id`,`type`),
  KEY `index_localities_on_name` (`name`),
  KEY `index_localities_on_lft_and_rgt` (`lft`,`rgt`)
) ENGINE=InnoDB;
Run Code Online (Sandbox Code Playgroud)

locatings:

CREATE TABLE `locatings` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `localizable_id` int(11) DEFAULT NULL,
  `localizable_type` varchar(255) DEFAULT NULL,
  `locality_id` int(11) NOT NULL,
  `category` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `index_locatings_on_locality_id` (`locality_id`),
  KEY `localizable_and_category_index` (`localizable_type`,`localizable_id`,`category`), …
Run Code Online (Sandbox Code Playgroud)

mysql sql indexing performance nested-sets

7
推荐指数
1
解决办法
982
查看次数

嵌套Set Query以检索每个节点的所有祖先

我有一个MySQL查询,我认为它可以很好地检索每个节点的所有祖先,从顶部节点开始,直到它的直接节点.但是当我在嵌套集中添加第5级时,它就破了.

下面是示例表,查询和SQL Fiddles:

四级嵌套集:

CREATE TABLE Tree
(title varchar(20) PRIMARY KEY,
 `tree` int,
 `left` int,
 `right` int);

INSERT Tree
VALUES
("Food", 1, 1, 18),
('Fruit', 1, 2, 11),
('Red', 1, 3, 6),
('Cherry', 1, 4, 5),
('Yellow', 1, 7, 10),
('Banana', 1, 8, 9),
('Meat', 1, 12, 17),
('Beef', 1, 13, 14),
('Pork', 1, 15, 16);
Run Code Online (Sandbox Code Playgroud)

查询:

SELECT t0.title node
      ,(SELECT GROUP_CONCAT(t2.title)
                    FROM Tree t2
                    WHERE t2.left<t0.left AND t2.right>t0.right
                    ORDER BY t2.left) ancestors
FROM Tree t0
GROUP BY t0.title;
Run Code Online (Sandbox Code Playgroud)

节点的返回结果 …

mysql sql select sql-order-by nested-sets

7
推荐指数
1
解决办法
4218
查看次数

搜索最好的PHP嵌套集类(不包括PEAR类)

我正在寻找一个带有所有需要函数的PHP(带有MYSQL)嵌套集类.例如:

createLeftNode,createRightNode,createRootNode,createSubNode,deleteNode和moveTree.不仅有1个左边,1个右边,1个向上和1个向下,还有一个树的一部分在另一棵树中.

谢谢!

php nested class set nested-sets

6
推荐指数
2
解决办法
1万
查看次数

如何使用RubyOnRails中的"充当嵌套集"创建可排序的接口

我一直在实现一些很好的交互式界面,可以在m rails应用程序中为使用的模型对列表进行排序acts_as_list.我有一个sort函数被调用,并使用sortable_element script.aculo.us函数设置每个拖放后的每个记录的位置.

这是在拖放完成后处理排序的控制器操作的示例:

  def sort
    params[:documents].each_with_index do |id, index|
      Document.update_all(['position=?', index+1], ['id=?', id])
    end
  end
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用嵌套set(acts_as_nested_set)的模型做同样的事情.接口交互类型的一个示例:http://script.aculo.us/playground/test/functional/sortable_tree_test.html

我停留在如何编写控制器动作以处理拖放完成时的排序.

我已经将:tree => true参数添加到sortable _element函数到目前为止,它似乎发送了一个哈希列表,但似乎我仍然缺少有关整个嵌套订​​单的信息....

我确信之前已经完成并且不想尝试重新发明轮子,但我似乎无法找到控制器动作的任何示例< - >视图与js函数设置来处理可排序 acts_as_nested_set

任何有关在rubyonrails中创建交互式可排序嵌套集的帮助将不胜感激!

谢谢,

约翰

ruby scriptaculous ruby-on-rails nested-sets

6
推荐指数
1
解决办法
4064
查看次数

如何在同一查询中选择所有直接子项和祖先

我正在使用MySQL中的树结构,使用嵌套集模型重新呈现.

我希望你们中的一些SQL专家可以帮我构建一个SELECT查询.

我希望能够使用LIKE匹配一组节点.对于匹配的每个节点,我还需要该节点的祖先的逗号分隔列表,以及该节点的直接子节点的逗号分隔列表.

我不确定从哪里开始 - 如果在单个查询中甚至可以实现这样的事情.(目前我在循环中使用查询来完成此操作.)我希望的是一个看起来像这样的结果集....

从字符串"qu"开始并查询表"Body"我得到...

Node      | Parent Nodes               | Immediate Children
Quads       Leg, Lower Body, Muslces     Vastus Lateralus, Vastus Medialis, Rectus Femoris
Obliques    Core, Trunk, Muscles         Inner obliques, outer obliques
Run Code Online (Sandbox Code Playgroud)

如何在不循环查询的情况下完成此任何建议将非常感激.

mysql sql tree nested-sets hierarchical-data

6
推荐指数
1
解决办法
1312
查看次数

递归查询邻接列表以预先排序SQL中的树遍历?

我正在将数据从一个数据库架构迁移到另一个.旧模式具有基于邻接列表的分类系统,具有id,category和parent_id.如果一个类别低于一秒,则该类别将第二个id作为其父ID.例如:

+-------------+----------------------+--------+
| category_id | name                 | parent |
+-------------+----------------------+--------+
|           1 | ELECTRONICS          |   NULL |
|           2 | TELEVISIONS          |      1 |
|           3 | TUBE                 |      2 |
|           4 | LCD                  |      2 |
|           5 | PLASMA               |      2 |
|           6 | PORTABLE ELECTRONICS |      1 |
|           7 | MP3 PLAYERS          |      6 |
|           8 | FLASH                |      7 |
|           9 | CD PLAYERS           |      6 |
|          10 | 2 …
Run Code Online (Sandbox Code Playgroud)

algorithm rdbms rdbms-agnostic nested-sets data-structures

6
推荐指数
1
解决办法
2168
查看次数

更改父级或删除时更新嵌套集

我有以下表结构,为方便起见,它也在sqlfiddle上:

+---------+-----------+---------+----------+-----------+-------------------+-----------------------------------+--------+--------------+-------------+---------------+-----------+
| rule_id | parent_id | left_id | right_id | rule_type | rule_title        | rule_description                  | public | parse_bbcode | parse_links | parse_smilies | group_ids |
+---------+-----------+---------+----------+-----------+-------------------+-----------------------------------+--------+--------------+-------------+---------------+-----------+
|       1 |         0 |       1 |        6 | cat       | Sample Category 1 |                                   |      1 |            0 |           0 |             0 | 1 2 7     |
|       2 |         1 |       2 |        3 | rule      | Sample Rule 1     | This is a sample rule description | …

php mysql database nested-sets sql-update

6
推荐指数
1
解决办法
1319
查看次数

Yii2的嵌套集为foreach()提供的参数无效

我为Yii2使用https://github.com/creocoder/yii2-nested-sets扩展!

所以,Yii1的第一个版本很好,但在这个版本中我有一些问题.

一切都严格按手册完成!

创建所有模型时,我获得错误:

在此输入图像描述

在此输入图像描述

在类别表的任何查询中都会出现此错误.如果删除整个行为的行为;(

分类型号:

<?php

namespace backend\models;

use creocoder\nestedsets\NestedSetsBehavior;
use yii\db\ActiveRecord;

class Categories extends ActiveRecord
{

  public function behaviors() {
    return [
      'tree' => [
        'class' => NestedSetsBehavior::className(),
         'treeAttribute' => 'tree',
      ],
    ];
  }

  public function transactions()
  {
    return [
      self::SCENARIO_DEFAULT => self::OP_ALL,
    ];
  }

  public static function find()
  {
    return new CategoryQuery(get_called_class());
  }
}
Run Code Online (Sandbox Code Playgroud)

CategoryQuery模型:

<?php

namespace backend\models;

use creocoder\nestedsets\NestedSetsQueryBehavior;
use yii\db\ActiveRecord;

class CategoryQuery extends ActiveRecord
{
  public function behaviors() { …
Run Code Online (Sandbox Code Playgroud)

php nested-sets yii2

6
推荐指数
1
解决办法
797
查看次数