问题标签 [hierarchy]

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 投票
9 回答
26620 浏览

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

您使用哪些方法来建模和检索数据库中的分层信息?

0 投票
5 回答
1593 浏览

sql - SQL 对层次结构中的节点进行重新排序

我有一个使用邻接列表模型(见下文)的“任务列表”数据库,因此每个“任务”可以有无限的子任务。该表有一个“TaskOrder”列,因此所有内容都以正确的顺序呈现在树视图上。

是否有一条 SQL 语句 (MS-SQL 2005) 将选择指定父节点的所有子节点并在删除同级时更新 TaskOder 列?

有任何想法吗?谢谢。

0 投票
6 回答
12594 浏览

.net - 在哪里可以找到 .NET Framework 类图?

我只需要一个框架结构的文件(图片、pdf或其他类型的打印文件)。在学习 .Net 框架时非常有用。

0 投票
9 回答
6347 浏览

sql - 选择类别属于层次结构中任何类别的产品

我有一个产品表,其中包含一个类别的 FK,类别表的创建方式是每个类别都可以有一个父类别,例如:

我需要进行选择查询,如果选择的类别是处理器,它将返回英特尔、奔腾、酷睿 2 双核、AMD 等的产品...

我考虑创建某种“缓存”,它将为数据库中的每个类别存储层次结构中的所有类别,并在 where 子句中包含“IN”。这是最好的解决方案吗?

0 投票
8 回答
12484 浏览

database - 如何对使用嵌套集模型存储的树进行排序?

当我提到嵌套集模型时,我指的是这里描述的内容。

我需要构建一个新系统,用于在用户定义的层次结构中存储“类别”(我想不出更好的词来形容它)。由于嵌套集模型针对读取而不是写入进行了优化,因此我决定使用它。不幸的是,在我对嵌套集的研究和测试过程中,我遇到了如何显示带有排序节点的层次树的问题。例如,如果我有层次结构:

我希望对其进行排序,使其显示为:

请注意,制造出现在研究之前。

无论如何,经过长时间的搜索,我看到了诸如“将树存储在多维数组中并对其进行排序”和“将树重新排序并序列化回您的嵌套集合模型”之类的答案(我在解释......)。无论哪种方式,第一个解决方案都是对 RAM 和 CPU 的可怕浪费,它们都是非常有限的资源……第二个解决方案看起来像是很多痛苦的代码。

无论如何,我能够弄清楚如何(使用嵌套集模型):

  1. 在 SQL 中启动新树
  2. 插入一个节点作为树中另一个节点的子节点
  3. 在树中的兄弟节点之后插入一个节点
  4. 从 SQL 中拉出具有层次结构的整个树
  5. 从层次结构中的特定节点(包括根节点)拉取子树,有或没有深度限制
  6. 查找树中任何节点的父节点

所以我想#5 和#6 可以用来做我想要的排序,它也可以用来按排序顺序重建树。

然而,现在我已经查看了所有这些我学会做的事情,我发现#3、#5 和#6 可以一起使用来执行排序插入。如果我做了排序插入,它总是被排序。但是,如果我改变了排序标准或者我想要一个不同的排序顺序,我就会回到原点。

这可能只是嵌套集模型的限制吗?它的使用是否会抑制输出的查询排序?

0 投票
7 回答
416 浏览

c# - 游戏项目的类层次结构建议

我正在编写一个 MUD 引擎,我刚刚开始研究需要可扩展的游戏对象模型。

我需要帮助主要是因为我所做的事情感觉很混乱,但我想不出另一种更好的解决方案。

我有一个名为 的类MudObject,另一个名为的类Container,一个容器可以包含多个MudObjects,但它MudObject本身就是一个,但是MudObject需要知道它们包含在什么中。

所以它们看起来像这样:

(请注意,这些只是示例,一些限定符和访问修饰符、属性等被遗漏了)

现在这本身看起来很混乱,但让我们添加一些其他的东西:

Item是一个MudObject所有视觉物品(例如武器)都将从中继承的,但是其中一些也需要是容器(例如箱子)。但是在c#中没有多重继承之类的,所以归结为接口,最好的选择是使容器成为接口(据我所知)但是我不希望它是有原因的,那就是向容器中添加一个MudObject将导致容器更新MudObjects.containedBy值。

有什么想法可以完成这项工作,还是我陷入了让事情变得过于复杂的陷阱?
如果是这样,你还有什么建议?

0 投票
2 回答
5340 浏览

.net - Linq to Sql - 查找祖先的分层查询

给定一个 EmployeeId,我如何构造一个 Linq to Sql 查询来查找该员工的所有祖先?每个 EmployeeId 都有一个关联的 SupervisorId(见下文)。

例如,对 EmployeeId 6 (Frank Black) 的祖先的查询应返回 Jane Doe、Bob Smith、Joe Bloggs 和 Head Honcho。

如有必要,我可以缓存所有员工的列表以提高绩效。

更新:

我创建了以下粗略的方法来完成任务。它遍历employee.Supervisor关系一直到根节点。但是,这将为每个员工发出一个数据库调用。有人有更简洁或更高效的方法吗?谢谢。

0 投票
4 回答
5912 浏览

performance - Oracle 分层查询性能

我们正在研究使用 Oracle 分层查询来建模可能非常大的树结构(可能无限宽,深度为 30+)。我的理解是,分层查询提供了一种编写递归连接 SQL 的方法,但与手动编写等效查询相比,它们并没有提供任何真正的性能增强……是这样吗?在性能方面,人们在使用 oracle 分层查询方面有过什么样的体验?

0 投票
5 回答
895 浏览

.net-3.5 - 在 .Net 3.5 中表示层次结构的集合类型

我一直在尝试用不同的方法来表示内存中的层次结构,这将允许简单而有效的上下横向发现祖先和后代关系。有人对我的选项有任何建议或示例吗?.Net 3.5 中是否有可以在这里提供帮助的集合类型?

0 投票
3 回答
1932 浏览

php - 从平面数据在 PHP 中构建分层 html 标签

如何在 PHP 中使用数据构建一组分层标签?

例如,一个嵌套列表:

这将是从这样的平面数据构建的:

如果它的格式也像示例一样很好,那就太好了。