标签: hierarchical-data

在嵌套集中移动节点

我需要一个MySQL查询,它将一个节点及其所有子节点移动到一个嵌套集中.我发现这个网站,但该功能似乎只是如此不合逻辑-没有universeidtreeid嵌套集模型,代码本身只是感觉比什么需要更长的时间.我在表中唯一的额外列是parent.

我不能再删除并添加节点,因为它将丢失其ID.

mysql tree nested-sets hierarchical-data

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

致命错误:嵌套级别太深 - 递归依赖?

我有一个复杂的嵌套对象层次结构,所有子对象(存储在父类中的对象数组)包含一个链接回其父级的属性:相当简单和直接,没有实际问题.如果我对层次结构中的任何对象执行var_dump,我将在转储中获得递归引用,正如我所期望的那样.

FIRSTGEN 
   _children array of objects of type SECONDGEN
      SECONDGEN #1
         _parent object of type FIRSTGEN
         _children array of objects of type THIRDGEN
            THIRDGEN #1
               _parent object of type SECONDGEN
            THIRDGEN #2
               _parent object of type SECONDGEN
      SECONDGEN #2
         _parent object of type FIRSTGEN
         _children array of objects of type THIRDGEN
            THIRDGEN #3
               _parent object of type SECONDGEN
Run Code Online (Sandbox Code Playgroud)

我最近在该层次结构中添加了一些新元素,但它们并没有遵循相同的模式.它们存储在顶级父级的对象数组中,但包含一个属性,将它们链接回来,而不是它们的父级,而是一个兄弟级.当我现在执行var_dump时,我得到一个"致命错误:嵌套级别太深 - 递归依赖?".

FIRSTGEN 
   _children_1 array of objects of type SECONDGEN_1
      SECONDGEN_1 #1
         _parent object of type FIRSTGEN
         _children array of objects …
Run Code Online (Sandbox Code Playgroud)

php oop recursion hierarchical-data

23
推荐指数
2
解决办法
3万
查看次数

计算分层SQL数据中的子项数

对于简单的数据结构,例如:

ID    parentID    Text        Price
1                 Root
2     1           Flowers
3     1           Electro
4     2           Rose        10
5     2           Violet      5
6     4           Red Rose    12
7     3           Television  100
8     3           Radio       70
9     8           Webradio    90
Run Code Online (Sandbox Code Playgroud)

作为参考,层次结构树如下所示:

ID    Text        Price
1     Root
|2    Flowers
|-4   Rose        10
| |-6 Red Rose    12
|-5   Violet      5
|3    Electro
|-7   Television  100
|-8   Radio       70
  |-9 Webradio    90
Run Code Online (Sandbox Code Playgroud)

我想计算每个级别的孩子数量.所以我会得到一个新的专栏"NoOfChildren",如下所示:

ID    parentID    Text        Price  NoOfChildren
1                 Root               8
2     1           Flowers …
Run Code Online (Sandbox Code Playgroud)

sql sql-server hierarchy hierarchical-data

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

php/Mysql最佳树形结构

我必须构建一个包含大约300个节点的树.树没有深度限制.所以它可以有3或15个级别.每个节点可以拥有无​​限数量的孩子.

优先级是尽可能快地获得完整的树/子树,但我还需要添加节点或移动节点,但有时不需要.

我想知道在数据库中存储树的最佳方法,以及在php中检索数据的最佳方法(如果可能的话).

php mysql tree hierarchical hierarchical-data

20
推荐指数
2
解决办法
3万
查看次数

树,集群,径向树和径向集群布局之间的平滑过渡

对于项目,我需要以交互方式更改可视化的分层数据布局 - 无需任何基础数据的任何更改.能够在它们之间切换的布局应该是树,簇,径向树和径向簇.转换应该最好是动画.

我认为这将是相对容易的任务D3.我开始了,但是我在翻译和轮换,数据绑定等方面迷失了,所以我向你寻求帮助.此外,我可能正在做的不是D3的精神,这是不好的,因为我正在寻求一个干净的解决方案.

我把一个jsfidle放在一起,但它只是一个起点,增加了单选按钮,方便的小数据集和初始集群布局 - 只是为了帮助任何想看看它的人.提前致谢!

更新:

我只想专注于链接,所以我暂时禁用其他元素.在@AmeliaBR方法的基础上,获得以下动画:

在此输入图像描述

这是更新的jsfiddle.

更新2:

现在用圈子:(原谅我选择的颜色)

{末日毒霸-末日}

在此输入图像描述

这是一个更新的jsfiddle.

hierarchy dendrogram hierarchical-data d3.js

20
推荐指数
2
解决办法
8579
查看次数

Oracle SYS_CONNECT_BY_PATH等效查询到SQL Server

我正在尝试将涉及Oracle SYS_CONNECT_BY_PATH语法的复杂查询转换为SQL Server:

    SELECT 
           DISTINCT TO_CHAR(CONCAT(@ROOT, SYS_CONNECT_BY_PATH(CONCAT('C_',X), '.'))) AS X_ALIAS
                , TO_CHAR(CONCAT(@ROOT, PRIOR SYS_CONNECT_BY_PATH(CONCAT('C_',X), '.'))) AS X_ALIAS_FATHER
                , TO_CHAR(X) AS X_ALIAS_LEAF
                , LEVEL AS LVL
      FROM MY_TABLE
 LEFT JOIN MY_TABLE_BIS MY_TABLE_BIS_ALIAS ON MY_TABLE_BIS_ALIAS.MY_ID = COL_X
 LEFT JOIN OTHER_TABLE 
        ON OTHER_TABLE.MY_ID = COL_X
CONNECT BY (PRIOR ID_SON = ID_FATHER)
       AND LEVEL <= MAXDEPTH
START WITH ID_FATHER 
        IN (SELECT AN_ID AS ID_FATHER FROM BIG_TABLE)
Run Code Online (Sandbox Code Playgroud)

这是我使用本网站获得的

WITH n(LEVEL, X_ALIAS, X_ALIAS_FATHER, X_ALIAS_LEAF) AS
      ( SELECT 1, CONCAT('C_',X), CONCAT('C_',X), CAST(X AS VARCHAR(30))
          FROM …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server recursive-query hierarchical-data

20
推荐指数
1
解决办法
1078
查看次数

用于生成层次结构的C#算法

我有一个看起来像这样的文本文件:

{ Id = 1, ParentId = 0, Position = 0, Title = "root" }
{ Id = 2, ParentId = 1, Position = 0, Title = "child 1" }
{ Id = 3, ParentId = 1, Position = 1, Title = "child 2" }
{ Id = 4, ParentId = 1, Position = 2, Title = "child 3" }
{ Id = 5, ParentId = 4, Position = 0, Title = "grandchild 1" }
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种通用的C#算法,它将从中创建一个对象层次结构.如果您愿意,可以使用"层次结构"功能将此数据转换为对象层次结构.

有任何想法吗?

编辑我已经将文件解析为.NET对象:

class …
Run Code Online (Sandbox Code Playgroud)

c# algorithm hierarchy hierarchical-data

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

如何在SQL数据库中存储树

我必须在数据库中存储一棵树,那么最好的方法是什么?显示您使用的方法并命名其优缺点.(我使用的是SQL Server 2005)

sql t-sql sql-server hierarchical-data

18
推荐指数
4
解决办法
1万
查看次数

如何在事务中简单地破坏引用完整性,而不禁用外键约束?

我有一个有3列的表:

ID, PARENT_ID, NAME
Run Code Online (Sandbox Code Playgroud)

PARENT_IDID在同一个表中具有外键关系.该表正在为层次结构建模.

有时ID记录会改变.我希望能够更新记录ID,然后更新依赖记录' PARENT_ID以指向新记录ID.

问题是,当我尝试更新ID记录时,它会破坏完整性并立即失败.

我意识到我可以使用new插入一个新记录ID,然后更新子项,然后删除旧记录,但是我们有很多触发器,如果​​我这样做会搞砸.

有没有办法暂时更新父级,承诺更新子级(显然它会在提交时失败)而不会短暂禁用外键?

sql oracle referential-integrity hierarchical-data

17
推荐指数
3
解决办法
8371
查看次数

MySQL Closure表分层数据库 - 如何以正确的顺序提取信息

我有一个使用Closure Table方法保存分层数据的MySQL数据库.一个简单的示例数据库创建脚本遵循该问题.我目前的问题是如何以正确的顺序从数据库中提取数据?我目前正在使用以下select语句.

SELECT `TreeData`.`iD`, `TreeData`.`subsectionOf`,
       CONCAT(REPEAT('-', `TreePaths`.`len`),`TreeData`.`name`),
       `TreePaths`.`len`,`TreePaths`.`ancestor`,`TreePaths`.`descendant`
FROM `TreeData`
LEFT JOIN `TreePaths` ON `TreeData`.`iD` = `TreePaths`.`descendant`
WHERE `TreePaths`.`ancestor` = 1
ORDER BY `TreeData`.`subsectionOrder`
Run Code Online (Sandbox Code Playgroud)

它会提取正确的信息,但输入顺序不正确.

示例数据库使用示例数据创建脚本.

-- Simple Sample
SET FOREIGN_KEY_CHECKS=0;
DROP TRIGGER IF EXISTS Tree_Insert;
DROP TRIGGER IF EXISTS Tree_Update;
DROP TABLE IF EXISTS TreePaths;
DROP TABLE IF EXISTS TreeData;
SET FOREIGN_KEY_CHECKS=1;


CREATE TABLE `TreeData` (
    `iD`              INT NOT NULL,             -- PK
    `subsectionOf`    INT,                      -- Parent ID & FK
    `subsectionOrder` INT,                      -- Oder of Subsections 
    `name`            NVARCHAR(500) NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

mysql hierarchical-data transitive-closure-table

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