问题标签 [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 投票
1 回答
1931 浏览

apache-flex - 从分层数据结构中的子字段计算的父数据

在 flex 3 中,我有一个分层数据结构。我想在树中显示它的内容。我的问题是我有从子节点计算数据的节点。如果子节点的数据发生更改,如何构建层次结构以自动更改这些父节点?例如:

  • 每个节点都有一个警告标志。如果某些子警告标志更改为真,那么父警告标志应自动更改设置为真。
  • 节点整数字段是子整数字段的总和,如果任何子整数字段发生变化,父整数字段会立即“计算”总和。

是否有一个简单的解决方案可以自动发生良好的结构更改,或者我必须制作一些自定义功能?

谢谢!

0 投票
3 回答
6920 浏览

google-app-engine - 在 Google App Engine 数据存储中存储分层数据?

有人可以说明我如何在谷歌应用引擎数据存储中存储和轻松查询分层数据吗?

0 投票
3 回答
195 浏览

css - 大型信息树的无障碍导航

我正在开发一个公共网站,它是有关医疗状况信息的前端。

在用户进行搜索(基于调查问卷)后,他们会看到分类为部分和子部分的结果。

信息项可以分配给部分和子部分。

目前,部分由顶部和屏幕上的选项卡表示,而子部分由侧边栏中的链接表示。侧边栏中的链接会根据选择的部分而变化。

问题是部分名称很长(几个单词),因此选项卡的组合长度对于标准屏幕分辨率(1024 x 768)来说太宽了。因此,它们会包装并破坏页面布局。我们将来还必须添加其他选项卡。

考虑到这个问题以及我们的目标受众相当广泛的事实,这是一个公共医疗网站,有哪些选项可以以普通用户可访问且易于导航的方式呈现此类信息。

0 投票
2 回答
7789 浏览

c# - 如何将具有多个表的数据集绑定到 asp.net 树视图控件?

我有一个树视图控件,我必须绑定一个包含多个数据表的数据集,并在它们之间建立关系。

你能建议我怎么做吗,我尝试了很多方法,但没有一个证明有用......

谢谢

0 投票
2 回答
251 浏览

sql - 如何可视化“损坏的”分层数据集?

我有一个相当大的数据表,其结构如下:

ETC....

即一个唯一的id,他们在层次结构中的级别(等级),他们的老板ID和上面的主管ID的记录。(2、3、4等是指那个特定等级的老板)。

该系统依赖于严格的等级制度——如果你是我的老板(/父母),那么你的老板必须是我的祖父母。

不幸的是,该规则并未在数据模型中强制执行,并且数据最终来自甚至不知道该规则的其他系统,更不用说观察它了。所以你和我可能是同一个boss,但我们的bossboss不会是同一个boss。

笔记:

  • 我无法更改数据模型
  • 我无法从源头修复数据。

所以(目前)我必须在数据到位后修复它。两周后有人会做一些破坏模型的事情,我需要稍微修改 procs 来解决。不理想,但我在接下来的六个月里一直坚持这个。

无论如何,特定的查询很容易产生,但我发现很难跟踪更大的图景。坐在上面的应用程序运行时没有任何抱怨,但在系统中导航变得非常混乱。所以我的问题是:

  • 任何人都可以推荐一种工具(或技术)在这种情况下生成某种“断树”图吗?

我不想要可以为我解决问题的东西,或者尝试进行统计分析,但至少可以直观地表明它在任何时候的损坏程度。

注意:目前这是在 SQL Server 数据库中,但我对使用 C#、Perl 或 Python 的想法持开放态度。

0 投票
2 回答
1561 浏览

linq-to-sql - 使用 Linq to SQL 的分层数据绑定

我正在尝试使用 Linq To SQL 进行我认为相当简单的数据绑定方案。

我有一个 FacultyMembers 表,其架构如下所示:

  • FacultyMemberID - int PK
  • 名称 - nvarchar
  • UniversityID - int FK 到大学表

等等。还有各种其他字符串属性。

我生成 LTS 数据类。我在页面上放置了一个 LinqDataSource 和一个 GridView,为两者启用了更新和删除,我正在我的快乐路上。没有代码,我可以更新我的字符串属性。在 UniversityID 上使用 DropDownList 进行一点操作,我也可以更新该一对多关系。耶。

现在,假设我放入了一个多对多映射表。假设 DivisionMemberships 将 FacultyMembers 映射到部门。DivisionMembership 使用简单明了的模式:

  • FacultyMemberID - int PK, FK 到 FacultyMembers 表
  • DivisionID - int PK, FK 到 Divisions 表

现在,当我将 GridView 的一行放入 EditMode 时,我遇到了一个问题,因为我不知道如何更新多对多关系。我想了一些替代方案,现在我正试图让 ListView 在那里工作。我正在做这样的事情:

等等。上面的一些喋喋不休已被删除,但 ListView 非常冗长,所以我不想让页面超载。

这里需要注意的事项:

  • 对于我的大学协会,我使用新的 LinqDataSource 并查询 UniversityID 匹配的项目,然后将新的 UniversityID(DDL 值)绑定到 FacultyMember,而对于 DivisionMemberships,我直接绑定到属性(如此所述)
  • 我使用数据绑定器。Bind()用于 UniversityID,而我使用 DataBinder。用于 DivisionMemberships 的Eval() 。

如果我切换到 DivisionMemberships 的 Bind(),我会得到 EntitySet 的 NotSerializableException。如果我坚持使用 Eval(),我必须自己为 ListView 编写 OnDelete 和 OnInsert 方法,并且在整个 FacultyMember 行退出 EditMode 之前我不想删除或插入 DivisionMemberships。我可能会为此创建一个 DataContext 并将其粘贴在会话中,因为我没有其他方法来标记 DivisionMemberships 以进行更新。

我认为这种情况很容易开箱即用,但我迷路了。关于从这里去哪里的任何建议?具体来说,我应该与 Bind() 搏斗并尝试使 EntitySet 可序列化,我应该咬紧牙关编写上面描述的用于在会话中存储 DataContext 直到 OnRowUpdating 事件触发的有点骇人听闻的代码,还是我完全走错了路?

0 投票
8 回答
12438 浏览

mysql - MySQL 中的分层数据

我的 MySQL 数据库中有一种类似树的东西。

我有一个包含类别的数据库,每个类别都有一个子目录。我将所有类别保存在一个表中,因此列如下所示:

我的数据库中的每个项目都分配给这些类别之一:

问题是如果有人想查看所有玩具(父类别),从项目数据库中获取信息的最佳方法是什么?我知道的唯一方法是做类似的事情

但是,如果我在 Toys 下有 10 个类别,那么我必须执行此连接和查询 10 次。

有没有更好的方法来处理这个?

0 投票
2 回答
1603 浏览

mysql - 嵌套集层次结构中的多个表

我有许多不同的项目存储在不同的 MySQL 表中,我想将它们放入树层次结构中。使用邻接表模型,我可以为每个表添加一个 parent_id 字段,并使用外键关系链接这些表。

但是,我想使用嵌套集/修改的预序树遍历模型。数据将在严重偏向于读取的环境中使用,并且我希望运行的查询类型支持这种方法。

问题是我在嵌套集上的所有信息都假设您只有一种类型的项目,存储在一个表中。我能想到的解决方法是:

  • 树中有多个外键字段,每个表/项目类型一个。
  • 在树结构中存储项目表的名称以及项目 ID。

至少可以说这两种方法都不优雅,那么有没有更好的方法呢?

0 投票
2 回答
684 浏览

ms-access - 正确使用类实例

我正在使用 Access 2003 VBA 来处理制造 BOM 的递归数据。我构建了一个类模块,让我的主表具有静态范围。这似乎简化了递归——当我遍历 BOM 时,它让我不必再向下和向上计数级别。我不会重复地打开同一个记录集;我过滤了很多。

在开始这项工作后,我阅读了有关对象关系建模的内容,并决定实例化不是记录集,而是记录。那么该记录的字段可能是属性。经过大量的工作和许多大多是错误的胜利的快感之后,我意识到这种方法没有任何好处,因为 Access 是基于表的。

我的课程模块仍然像以前一样有帮助。我的问题是关于以下两个替代版本。第一个使用两个实例(父、子)。第二个使用一个,然后重用它。显然第一个是受 ORM 影响的。

有什么理由选择其中一个而不是另一个?另外,请注意最后的斜体线:如果我不需要(因为我不需要有关父级的更多信息),那会改变答案吗?任何人都可以帮助我总体思考吗?

(请注意,我关闭记录集而不是类实例。我的理解是 VBA 实例关闭自己并让他们这样做是公认的做法。我似乎已经将伪代码提升到新的伪水平......目标是清晰,希望有用。)

0 投票
4 回答
3352 浏览

sql - 在分层 sql 中查找重复/重复的行

我正在尝试检测分层表中的重复/重复值。

考虑以下(稍微做作的)示例:

返回...

我真正想要的是...

即我希望每一行返回子查询中存在的次数(忽略顺序)。由于 START WITH 使用的是 IN 子句,因此重复值被抑制。是否可以重新组织 SQL 以便我可以做到这一点?

请注意,在我的情况下,子条款不是 UNION,而是一个 SELECT,它可以从表中返回多个(可能是重复的)值。

我可以通过将值写入临时表然后进行 GROUPing + COUNTing 来在 PL/SQL 中执行此操作,但我更愿意仅在可能的情况下在 SQL 中执行此操作。

让我知道是否需要任何澄清。

谢谢 :-)

编辑:

请注意,子查询可能返回 0...N 个值。