问题标签 [hierarchyid]
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.
sql-server - SQL Server:如何填充大表的hierarchyID 字段?
我有一张有 100 000 000 行的大桌子。它包含一棵有一个根的树。树实现为 2 个字段:
没有关于这棵树的附加数据。
我想在表格中添加新列
层次结构id
并用层次结构值填充它。
我创建了一个脚本,但它可以工作约 15 小时。不行。它应该在 <3 小时内执行。怎么做?谢谢。
sql-server-2008 - use hierarchyid to find leaf nodes
I have a Locations table that uses a hierarchyid column to map cities/regions/countries/continents. The table looks like this:
I have a second table that maps events to the locations. This table flattens the hierarchy and has one record per level (I inherited it this way). So if an event is in Los Angeles, there are 4 records for the event in this table: Los Angeles, California, United States, North America. The same event can also be held in multiple locations.
I’m trying to create a query the selects the records from @EventLocations that I have identified as leaf nodes. These are records, per event, that have no descendants in relation to the @Locations hierarchy. So it’s possible for a location to be a “leaf” in @EventLocations, but have a descendant in @Locations. I've tried the query below but it only pulls out records that are leafs in the @Locations table.
sql - hierarchyid 是否适用于频繁插入叶节点的大树?
我们有一个建模树的数据库。这些数据可以增长得相当大,也就是说很多,可能有数百万行。(主键实际上是 a bigint
,所以我想我们可能希望支持数十亿行,尽管这可能永远不会发生)。
单个节点可以有非常大量的直接子节点,它们在层次结构中的位置可能越高。我们对叶子的实际最大深度没有指定限制,即一个必须遍历多少个节点才能到达根,但实际上这通常最多不会超过几百个。通常它可能会低于20。
此表中的插入非常频繁,需要高性能。插入的插入节点总是叶节点,并且总是在最后一个兄弟节点之后。节点永远不会移动。删除总是作为整个子树进行的。查找子树是对该表进行的另一项操作。它没有相同的性能要求,但我们当然希望它尽可能快。
今天,这是使用父/子模型建模的,该模型对于插入非常有效,但对于查找子树却非常缓慢。当表变大时,这会变得非常缓慢,并且查找子树可能需要几分钟时间。
所以我正在考虑将其转换为可能在 SQL Server 中使用新的 hierarchyid 类型。但是我很难确定这是否合适。据我了解,对于我们在这种情况下执行的操作,这样的树将是一个好主意。(如果我在这里错了,请纠正我)。
但它也指出,hierarchyid 的最大大小是 892 字节。但是,我找不到任何关于这在实践中意味着什么的信息。hierarchyid 是如何编码的?我会用完hierarchyid,如果是,什么时候?
sql - MS SQL Server中hierarchyid值的高效管理
使用 SQL Server 2008 及更高版本中的 hierarchyid 数据类型,尝试优化 /1/1/8/ [ /1/1/8/x/ ] 的下一个子节点的发布是否有任何好处,使得 x 是最接近 1 的非负整数可能吗?
一个简单的解决方案似乎是找到分配的最大子值并将兄弟值移到正确的位置,但看起来你最终会耗尽这个(理论上如果不是在实践中),因为你永远不会回收任何值并且我的理解,否定和非整体占用更多空间。
示例:如果我有一个/1/1/8/
有这些孩子的父母(孩子的顺序无关紧要,重新分配值是可以的):
我不希望下一个孩子有/1/1/8/2/
吗?
hierarchyid - 如何检查具有hierarchyid '/1/1/' 的节点是否有一个具有hierarchyid '/1/1/x' 的子节点?
请你帮我检查一个具有hierarchyid '/1/1/' 的节点是否有(或没有)一个具有hierarchyid '/1/1/X' 的子节点?
sql-server - SQL Server 2012 HierarchyId 有两个父母?
我有一个使用层次结构的工作系统,示例如下。我现在需要让一个孩子有两个父母,在我的例子中,我需要让 'tomato' (id=4) 既是水果又是蔬菜。
我可以用新的 PK 重构表,然后复制番茄行,这样它的 rowid 可以为n并仍然保留其“番茄标识符”,然后每一行都可以有自己的父级....但是还有另一种方法来指定多个父母无需重组整个表?
谢谢。
c# - EntityFramework.HierarchyId 的问题
我正在尝试使用EntityFramework.HierarchyId
Nuget 包添加对HierarchyId
EF 6 内部数据类型的支持,问题是每次添加包并尝试构建项目时,都会出现以下错误:
错误 3 类型“System.Data.Entity.DbContext”在未引用的程序集中定义。您必须添加对程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。
如果我删除软件包并重新安装 EF 6.1,问题就消失了。
这是我的 Web.config 文件中的内容:
如果我将版本更改为错误所说的,问题仍然存在:
mysql - MySQL:SQL Server 的 HierarchyId 数据类型的替代解决方案
SQL Server 2008
我当前的应用程序是在服务器中构建的JAVA
,Hibernate
并且我HierarchyId
在数据库中使用了部门层次结构的数据类型。
我编写了 SQL 查询来处理 HierarchyId 数据类型。我也有n-Level
部门树结构。
现在我想根据业务需求将我的数据库服务器从SQL Server 2008
更改为。MySQL
经过可行性检查后,我提出了解决方案,即我的整个应用程序将迁移到 MySQL 数据库服务器,但HierarchyId
数据类型除外。
所以我的主要挑战是找到HierarchyId
编码变化最小的数据类型的替代解决方案。
在我的数据库中实现部门层次结构的最佳方法是什么?
谢谢...
parsing - hierarchyID GetAncestor 作为 ID
问题:我需要从hierarchyID 中推断出parentID。
示例:我的 columnID 是 8,我当前的 hierarchyID 是 /1/2/4/8
. 当我打电话时 columnName.GetAncestor(1)
,这会给我/1/2/4/
。我需要的是4
.
我该怎么做呢?或者是hierarchyIDs 只是为了加入?
我正在研究SqlHierarchyID.Parse()但我不明白如何使用它。
sql-server - HierarchyID:获取父母列表的所有后代
我有一个这样的父 ID 列表,100, 110, 120, 130
它是动态的并且可以更改。我想在一组中获取指定父母的所有后代。为了获得一个单亲的孩子,我使用了这样的查询:
不知道如何为多个父母做到这一点。我的第一次尝试是写几个联合之类的东西,但是我确信应该有更聪明的方法来做这件事。
PS我还发现这样的查询来选择可能有帮助的ID列表:
总而言之,我的目标是编写接受父 ID 数组作为参数的查询,并在一个集合中返回它们的所有后代。