问题标签 [hierarchical-data]

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 投票
5 回答
2985 浏览

sql - 处理类别、子类别 - 分层数据的最佳方法是什么?

复制:

SQL - 如何存储和导航层次结构


如果我有一个客户需要类别、子类别、子子类别等的数据库,那么最好的方法是什么?如果他们只需要三个,并且总是知道他们需要三个,我可以创建三个表 cat、subcat、subsubcat 等。但是,如果他们想要更深入怎么办?我不喜欢这三张桌子,但这是我知道如何做到这一点的唯一方法。

我看过“ sql adjacency list ”,但不知道这是否是唯一可能的方法。我希望输入,以便客户可以拥有任何级别的类别和子类别。我相信这意味着分层数据。

编辑:如果可能的话,希望 sql 能够将列表重新显示出来

谢谢你。

0 投票
3 回答
7259 浏览

entity-framework - 如何将实体框架与分层数据一起使用?

我正在使用 sql server 中的大型分层数据集 - 使用标准的“EntityID,ParentID”类型的方法建模。整个树中大约有 25,000 个节点。

我经常需要访问树的子树,然后访问挂在子树节点上的相关数据。几年前,我基于表值函数构建了一个数据访问层,在给定子树的根节点的情况下,使用递归查询来获取任意子树。

我正在考虑使用实体框架,但我看不到如何查询这样的分层数据。AFAIK 在 Linq 中没有递归查询,我无法在我的实体数据模型中公开 TVF。

是继续使用存储过程的唯一解决方案吗?有没有其他人解决了这个问题?

澄清:树中的 25,000 个节点是指分层数据集的大小,与对象或实体框架无关。

0 投票
1 回答
1727 浏览

.net - 将 IHierarchicalEnumerable 绑定到树视图,并指定自定义图像和导航 URL

我有一个实现 IHierarchicalEnumerable 的外部数据源。我正在尝试为我的 TreeView 使用该数据源,但我找不到指定控件应呈现的图像和单个导航 url 的方法(那里有一些业务逻辑)。

我看到的示例都假设 Url 以及 Name 和 Image 字段在数据源中直接可用,但这里不是这种情况。

我尝试创建另一个数据源作为实现这些属性的代理,但这证明比预期的要困难得多(由于 GetHierarchyData().GetChildren())所以我希望有其他方法。

谢谢您的帮助!

0 投票
2 回答
2731 浏览

sql - SQL笛卡尔连接问题

我有三张桌子

  • A:A.pID 主键,A.Name nvarchar(250)
  • B:B.pID 主键,B.Name nvarchar(250)
  • C: C.pID 主键,C.Name nvarchar(250)

A 和 B 之间存在 am 到 n 关系(lA_B具有主键的表lA_B.pID.pInstanceA表 A 的.pInstanceB外键和表 B 的外键)

A 和 C 之间存在 am 到 n 关系(表 Atable lA_C的主键lA_C.pID和外键以及表 C 的外键).pInstanceA.pInstanceB

  • A1 与 B1、B2 和 C1 相关
  • A2 与 B3 和 C2、C3 相关
  • A3 与 B4 相关
  • A4 与 C4 相关
  • A5没有关系

这是我的 SQL:

这个查询:

返回

现在的问题:-) 如何查询接收

问题是,当我与 B 和 C 进行连接时,结果具有 B C 的所有组合。我怎样才能消除这个?

0 投票
13 回答
22517 浏览

mysql - 在嵌套集中移动节点

我需要一个在嵌套集中移动节点及其所有子节点的 MySQL 查询。我找到了这个网站,但这个功能看起来很不合逻辑——没有嵌套集合模型universeidtreeid在嵌套集合模型中,而且代码本身比感觉需要的要长。我在表中得到的唯一额外列是parent.

我不能只是删除并再次添加节点,因为它会丢失它的 ID。

0 投票
5 回答
23751 浏览

oracle - Oracle 分层查询:如何包含顶级父级

我有一个分层查询来跟踪报告结构。这几乎可以工作,只是它没有报告最顶层的节点,可能是因为顶层的人向自己“报告”。

查询是:

这会产生:

我没有达到 4 级,因为它看起来像:

在不更改数据的情况下,有没有办法修改我的查询以便返回所有 4 个级别?目标是得到 empids,所以我可以检查

id in (hierarchical subquery)

顺便说一句,如果我从查询中删除 nocycle,我会收到错误消息。

0 投票
5 回答
6838 浏览

database - 分层数据模型:邻接表与嵌套集

我有一个产品目录。每个类别由不同数量(深度)的子类别组成。级别(深)的数量是未知的,但我很确定它不会超过 5,6 级别。数据更改比读取要少得多。

问题是:哪种类型的分层数据模型更适合这种情况。该项目基于 Django 框架,应考虑其特性(管理 i-face、模型处理......)。

非常感谢!

0 投票
4 回答
11605 浏览

php - MySQL父->子查询

我正在使用 mySQL,并且我需要从一个表中选择与另一个表中父-> 子数据层次结构中任何级别的 ID 匹配的数据。

此外,我想用一个写得很好的 SQL 查询来解决这个问题,而不是我的 PHP 代码中的递归函数,因为这个特性会被使用很多。

我确实尝试过搜索,并且偶然发现了许多类似的问题(大多数都已解决),但是没有一个对我有帮助。

为了帮助说明情况,这是我当前的设置

表“文章”:

  • article_id
  • 类别ID
  • ...

表类别

  • 类别ID
  • parent_id
  • ...

我需要从“articles.category_id”为10的“articles”中选择所有文章。但还要从“categories.category_id”10所属的树中接收所有类别的所有文章。

意思是,其中“10”是父母和所有的孩子,向上是10是孩子和所有的父母。

没有递归php函数可能吗?

谢谢你。

0 投票
7 回答
18326 浏览

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

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

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

有任何想法吗?

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

现在我需要将对象实际排列到对象图中。

0 投票
2 回答
1990 浏览

linq - 使用 LINQ 的分层数据总和?

是否可以使用 .NET 的 LINQ 对分层数据求和?

我的数据类如下所示:

所以我会有一些数据看起来像这样,但树当然可以任意深。

可以通过一个简单的 LINQ 查询将所有金额相加并获得结果 60?