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

database - PostgreSQL 的 Ltree 模块是否适合线程注释?

我正在考虑在我的应用程序中使用 PostgreSQL 的Ltree 模块来帮助处理线程注释。我一直在关注它用于线程评论。我认为它会在您需要更新节点及其子节点的情况下有所帮助,例如当您想要隐藏评论及其回复时。

我认为 ltree(或类似的东西)如果与传统的邻接列表(“comment_id”/“parent_comment_id”)结合使用会很有用。

在开始使用 ltree 之前,我想知道一些事情:

  1. 您是否使用过 ltree?这就是所谓的“生产就绪”吗?
  2. 如果是这样,你用它解决了什么问题?它做得好吗?
  3. 你认为它适合线程评论系统吗?
    1. 如果你使用它,你在路径的“文本”部分使用了什么?您是否设置了类似于他们使用“Top.Astronomy.Cosmology”的 DMOZ 示例或基于主键“1.403.29.5”之类的东西?
    2. 有一个更好的方法吗?使用嵌套列表方法我有点紧张——我读过的所有内容都表明,UPDATES 或 INSERTS 并不是很热(你不需要重新排序吗?)。我也不是 CS 专业的,这种数据结构是我将来可能会忘记的东西。有人使用嵌套列表来发表评论或类似的东西吗?

如果有任何帮助,这是我正在考虑的架构:

ltree 使用的“路径”列看起来像:

在路径中使用主键有什么问题吗?我应该在路径中包含节点自己的主键吗?如果我这样做了,在其上放置一个唯一索引作为约束是否有意义?

0 投票
3 回答
2230 浏览

iphone - 在导航控制器中的子视图之间转换?

在我的应用程序中,我有一个向下钻取类型的界面,如下所示:
我的根视图,它有一个项目列表和一个“添加”按钮。
选择一个项目会推动导航控制器上的“详细信息”视图。
选择“添加”按钮会推送“添加”视图。

如何在 Add 视图和 Detail 视图之间转换?

我正在考虑在 Add 视图上做一个无动画的“pop”并推动 Detail 控制器,但是我如何使第二部分动画化,所以细节视图要么垂直滑入,要么从 Add 视图淡入?

谢谢,
凯尔索

0 投票
1 回答
1021 浏览

c# - 如何区分同一对象的两个版本?

我想比较两个不同版本的对象并在 UI 中显示它们的差异。

首先我调用一个方法来知道两个对象之间是否有任何区别

方法是:

如果上述方法返回 true,我调用该GetDifferences方法来获取差异,即:

对于每个差异,我创建一个 ObjectDifference 类型的对象并将其添加到数组中。突出显示的部分是我被卡住的部分!如果对象包含另一个复杂对象,我的程序确实给了我差异,但我不知道它属于哪种类型

例如,我有两个名称类型的对象

在比较两个对象时,我得到的输出很简单 -

  • firstname- 约翰玛丽
  • LastName- 库珀洛尔
  • officeNo- 22222 44444
  • MobileNo- 989898 089089
  • HomeNo- 4242 43535

officeNo类型的层次结构PhoneNumber丢失了,这对我来说很重要。

我应该如何在创建差异的同时维护这种类型的树?希望我能够理解我的问题。

0 投票
3 回答
3803 浏览

python - Python的层次结构遍历和比较模块?

我在日常开发中处理了很多层次结构。Autodesk Maya 中的文件系统、嵌套 DAG 节点等。

我想知道,有没有专门设计用于遍历和比较对象层次结构的 Python 模块?

特别感兴趣的是在两个几乎相同的层次结构之间进行“模糊”比较的方法。这样做的一些原因是为了在 Maya 中匹配来自两个不同角色的两个节点层次结构,以便将动画从一个角色转移到另一个角色。

根据我一直在阅读的内容,我可能需要具有名称阈值的东西(我可以自己构建)来比较两个节点名称彼此之间的接近程度。然后,我需要一种方法来选择性地忽略子节点出现在层次结构中的顺序。最后,我需要处理深度阈值,以防节点可能在层次结构中略微向上或向下移动。

0 投票
2 回答
1629 浏览

xslt - XSLT:合并一组树层次结构

我有一个基于 Excel 在另存为“XML Spreadsheet 2003 (*.xml)”时生成的 XML 文档。

电子表格本身包含一个带有标签层次结构的标题部分:

此层次结构存在于工作簿中的所有工作表上,并且在任何地方看起来或多或少都相同。

Excel XML 的工作方式与普通的 HTML 表格完全一样。( <row>s 包含<cell>s)。我已经能够将所有内容转换为这样的树形结构:

但这里是复杂的:

  • 有多个工作表,因此每个工作表都有一棵树
  • 每个工作表上的层次结构可能略有不同,树将不相等(例如,工作表 2 可能有“a113”,而其他工作表没有)
  • 树的深度没有明确限制
  • 然而,标签在所有工作表中都是相同的,这意味着它们可以用于分组

我想将这些单独的树合并成一个看起来像这样的树:

理想情况下,我希望能够在我什至从 Excel XML 构建三个结构之前进行合并(如果你让我开始这样做,那就太好了)。但是由于我不知道我将如何做到这一点,所以在构建树之后进行合并(即:上述情况)就可以了。

谢谢你的时间。:)

0 投票
4 回答
1528 浏览

asp.net - 如何使用自联接和项目表“分层结构”绑定 asp.net 控件?

我有以下表格:
1-Categories:
-CategoryID
-CategoryName
-ParentID

2-Items:
-ItemId
-ItemName -CategoryID
类别

可以在分层视图中,彼此之间有许多子类别。
并且任何最后一个子类别都可以包含项目,因此只有最后一个子类别会在其下显示项目。
该视图就像一个树视图,当单击一个项目时,它将转到一个新页面。

我是这样写的:


但这代表了一个层次结构,
我的问题是如何将其作为树视图?

0 投票
5 回答
9622 浏览

c# - 遍历 DirectoryEntry 或任何对象层次结构 - C#

我目前正在开发一个应用程序,它使用 System.DirectoryServices 命名空间来创建一个 DirectoryEntry 对象并遍历整个层次结构以收集信息。

我不知道层次结构中每个 DirectoryEntry 对象的子条目数,因此我无法通过 Children 属性为蜘蛛创建 N 个嵌套循环

这是我的伪代码示例:

我的问题是,如果您不知道对象中子目录的数量,那么创建一个循环来收集信息的最佳方法是什么?

(这可以应用于您不知道对象层次结构的任何类型的对象)

0 投票
4 回答
4471 浏览

sql - 在关系数据库中存储文件夹层次结构

我有代表文件夹的对象,我想知道它们是否应该在数据库中表示。

一方面,似乎最简单的方法是不表示文件夹对象,而只存储文件夹中包含的对象的路径值。我看到的问题是您不能保留其后代不包含任何项目的文件夹,这没什么大不了的。此外,我不清楚如何加载要显示的文件夹层次结构(例如在 TreeView 中)而不预先将所有内容加载到内存中,这可能是一个性能问题。

另一种方法是有一个“文件夹”表,其中包含对其父文件夹的引用。这似乎应该工作,但我不确定如何允许具有相同名称的文件夹,只要它们不共享父级。这甚至应该是数据库应该关注的事情,还是我应该在业务逻辑中强制执行的事情?

0 投票
1 回答
350 浏览

php - 高效搜索 3 级层次结构

假设我有一个 FirstName > MiddleName > LastName 层次结构(为了这个问题,大约 10k 行)。这意味着您可以有“John > Mary-Anne > Eddy”或“Eddy > John > Jacob”行。关键是层次结构没有什么意义,而且对用户来说非常陌生(不像国家>州>城市结构)。

因为它是如此的非结构化和混乱,我想为用户提供一个自动完成的输入框。当他们键入时,它应该搜索可能的子字符串匹配,并且当他们在某个级别“root”他们的搜索字符串时,它会将结果限制在该级别以下。

现在,因为有很多人叫“约翰”,所以如果他们输入“约翰”,他们只会得到类似的结果,这没什么意义

  • 约翰 > 艾伦 > 亚历山大
  • 约翰 > 艾伦 > Burschawitz
  • 约翰 > 艾伦……重复 100 次……

因为他们永远不会看到唯一的行“Jason > John > Smith”。

相反,他们应该得到类似的东西(“*”只是“嘿,下面还有很多行”的用户的一个任意指示符):

  • 约翰 > 艾伦 > *
  • 杰森 > 约翰 > 史密斯
  • 迈克 > 约翰 > *
  • 玛丽 > 埃琳娜 > 乔纳森

如果他们键入“John > Al”,则结果将仅限于“John >”下的任何内容,但应与上述类似地进行分组。

我希望解释清楚。要求有点松。只是合理的,这样人们就可以在树中搜索并找到他们想要的东西。

现在,我有一些有趣的 SQL 来查找行中的搜索词,找出它的位置,进行一些子字符串化、分组和排序以获得上述结果,但它的性能不够好。

我试图在典型的 LAMP 堆栈上解决这个问题(Oracle 除外)。它不是共享主机,所以我可以完全控制服务器。数据每隔几周就会发生少量变化,并且搜索结果可以在合理的时间内保持陈旧(例如,更新搜索索引的 cron 并非不可能)。

0 投票
2 回答
4844 浏览

performance - 在性能(和分类)方面,分层数据与相关数据的优缺点是什么?

这与这个问题有关。它让我想到,例如,这本书。与其在树和中分别成为[Agriculture]和的子级,不如将这些级别作为标签独立存在。[Other][Books > Catalogs > Agriculture][Business & Industrial > Agriculture & Forestry > Other]

在像 eBay 这样的网站中,如果数据被正确规范化,列出所有带有标签 [AgricultureAND的记录的性能成本是否会Catalog]大大超过列出该[Books > Catalogs > Agriculture] 类别中的所有记录的性能成本?

我意识到这可能是一个愚蠢的问题(不,我不认为我正在为下一个 eBay 编程),但我无法摆脱这种好奇心,更糟的是;诱惑;_ 所以我宁愿现在听起来很愚蠢,并很好地理解我的误解,而不是以后做一些愚蠢或毫无意义的事情。