问题标签 [hierarchical]

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 投票
1 回答
622 浏览

database-design - 存储分层数据的可能选项

我们需要能够将各种类型的实体映射到 Web 应用程序中不同类型的分层数据。例如,考虑一个名为Vendor的实体。我们需要能够将供应商的每个实例映射到地理区域。地理区域在以下层次结构中:

  1. 邮政编码 - 最细化的地理区域;例如,EC2
  2. 地区 - 由邮政编码组成;例如,肯辛顿。每个邮政编码将完全属于一个地区,仅此而已。
  3. 城镇 - 由地方组成;例如伦敦。每个地方都将成为一个城镇的一部分,仅此而已。
  4. 区 - 由城镇组成;例如,哥伦比亚。
  5. 省 - 由地区组成(在某些国家相当于州);例如,南卡罗来纳州。
  6. 地区 - 由省份组成;以东北省为例。
  7. 国家 - 由地区组成。
  8. 区域 - 由国家组成;以东南亚为例。
  9. 大陆 - 由区域组成。

我们有一个完整的邮政编码、地区、城镇、地区、省、地区、国家、地区和大洲的数据库。这当前作为 RDBMS 中的表存在。

我们的用例:

  1. 能够在任何级别将供应商与多个地区相关联。例如,我们可以将雀巢映射到欧洲大陆(一个区域)、加利福尼亚(美国的一个省)和大伦敦(英国的一个地区)。
  2. 能够从映射中排除地理的某些部分。例如,当将Nestle映射到California时,我们可能想要排除San Diego
  3. 如果地理的构成发生变化,则不应要求对该地理所属的映射进行任何更改。例如,如果将邮政编码添加到Greater London ,则与雀巢的映射不需要更改。
  4. 能够在数据库中查询供应商和地理级别。例如,如果我们查询雀巢邮政编码的数据库,我们应该得到大伦敦加利福尼亚(减去圣地亚哥的邮政编码)和欧洲大陆的所有邮政编码。如果我们查询雀巢国家的数据库,我们应该得到英国大伦敦的国家)、美国欧洲大陆的所有国家。

有许多这样的映射与许多不同类型的分层数据,这只是要求之一。

寻找有关存储分层数据和映射的建议。请不要发布涉及在 RDBMS 表中存储数据和映射的答案,因为我已经知道使用 RDBMS 的选项。

0 投票
3 回答
7021 浏览

php - 带有foreach的类内的递归函数在不应该更改的地方更改了公共值

好吧,我真的很坚持这个。我希望你能帮助我。

我有我的班级,用于管理分层数据。输入是一个具有以下结构的普通数组(只是一个示例):

我以这种方式将数据输入到类中:

然后我有一个公共函数 ( createTree) 来创建列表的多维数组表示。它完美地工作。它可以返回结果或将其存储在$this->tree.

如您所见,这非常简单。它调用私有函数iterateTree,即递归函数。

到目前为止,一切都很好。它工作正常。

但是......当我想$this->plain在调用后使用时出现问题createTree()。它不是返回原始数据集,而是返回原始输入之间的某种混合,并附加所有子数据集(类似于$this->tree)。

我无法弄清楚为什么$this->plain要更改的内容,在使用的两个函数中我都没有更改它的内容。

我尝试在foreach, 之后取消设置变量foreach,甚至将原始数组作为参数传递,并且$this->plain在递归函数中根本不使用。没有任何效果。

我也没有在类中使用任何其他可能改变它的值的函数。

这完全是个谜!

0 投票
1 回答
677 浏览

visual-studio-2010 - 折叠并取消选择 TFS 挂起更改层次结构

TFS 挂起更改视图 (VS2010) 使用起来很烦人,尤其是层次视图总是展开的事实。此外,当我签入一些文件时,挂起的更改视图会刷新,所有项目都会展开并被选中。考虑到工作区中有多种解决方案(在功能和逻辑上是不相交的),并且在任何时候我都可以在多个轨道上工作,自动刷新、展开和选择会迫使我遍历每个节点并折叠和取消选择它。

一些搜索把我带到了这个页面,在那里指定了一种解决方法,默认情况下使用宏选择 Hierarichal 视图。扩展此方法以解决上述问题并没有实现,因为我相信节点崩溃和取消选择的事件没有被记录下来。

是否有任何解决此问题的方法,例如 VS Power Tool,它提供了一个特殊的功能“全部折叠”,可以折叠解决方案中的所有项目!

0 投票
2 回答
52 浏览

php - 分层 php 函数执行错误!这是什么?

为什么我在以下两种情况下通过 print_r 得到不同的输出!!?这是php中的错误吗?php无法执行内部函数调用的复杂分层函数吗?

在第一种情况下,输出是一个分解数组:

在第二种情况下,输出是 string :

0 投票
1 回答
172 浏览

sql - Oracle CONNECT 操作

我已经阅读了有关操作的Oracle 文档CONNECT,但我似乎无法理解现有应用程序中的数据库查询。以下是查询的简化版本。

虽然我对CONNECT功能有基本的了解,但这种组合让我迷失了方向。谁能解释这个查询中发生了什么?

我认为最后说要获取所有具有相同区域且行号比当前行号小 1 的行以及从当前日期起 6 个月之前的日期。我猜这只会返回 1 行(由于行号标准)或如果不满足其他标准则返回 0 行。然后也许第一个CONNECT_BY_ROOT说要获得该行的MY_MONTH价值?

0 投票
0 回答
452 浏览

python - 将 scipy 树状图输出到 TreeView 文件

我已经使用 pylab 和 scipy 编写了一个 python 脚本,以根据这篇文章从表达式矩阵中输出层次聚类热图和树状图: 在 python 中的数据矩阵上绘制层次聚类的结果

现在我想将我的数组和基因(列和行)树状图导出到文本文件中,这样程序 TreeView 也可以查看这些数据(例如,cdt、gtr、atr 文件)。这个事情谁有经验?

谢谢

0 投票
1 回答
660 浏览

xml - PLSQL:从“分层”表创建 XML

我有一张这样的桌子:

等等。

我想用它创建一个 xml 结构,所以我会有这样的东西:

我发现了一些有趣的功能,但我没有找到我需要的...

PS:我不需要“真正的” XML,结果结构甚至可以是 varchar2(但它可能会变得非常大)或 clob。

0 投票
3 回答
7645 浏览

sql - 是否可以在同一个表中引用不同的列?

如果博客有一个“类别”表,如下所示:

如果 parent_id 字段旨在引用类别表的“id”字段,那么我如何添加一个约束来确保插入到 parent_id 中的值引用 id 字段?

我只是想确保只有存在的类别 id 值可以用作新插入类别的父级。

0 投票
2 回答
377 浏览

c# - C# ASP.NET - 分层数组

我正在尝试在 foreach 循环中将数据存储在如下数组中:

名字,姓氏,出生日期

因此,一旦循环完成,我应该得到{John,Smith,05/05/1980},{Mary,Smith,05/04/1980} etc...这将使我能够访问存储在系统中的每个人的不同信息。

最好的方法是什么?我一直在阅读使用此处显示的分层数组http://msdn.microsoft.com/en-us/library/ms486189(v=office.12).aspx但我不确定这是否是最好的方法。

我对 c# 编程很陌生,所以任何建议都将不胜感激!

0 投票
2 回答
125 浏览

perl - 用于排序的子键比较功能

我需要一个可以与排序一起使用的 Perl 比较函数。

每个键都是一个文本字符串,具有任意数量的子键,由分隔符(点、冒号、空格和斜杠)分隔。一些子键是数字的,需要按数字排序。密钥格式和子密钥数量各不相同。因此,比较必须处理一个键长于另一个键,并且必须处理子键在一个键中是数字但在另一个键中不是数字的情况(在这种情况下,文本比较适用于该子键)。

这行得通,但我敢打赌有更好的解决方案:

就我而言,可读性比速度更重要。这只是一个内部工具,列表很少有超过数百个元素。但是,任何学习东西的机会都是好的。

如您所见,我不是 perl 向导。即使对我的代码进行微不足道的改进也将不胜感激。

谢谢!