使用 HIERARCHYID 数据类型处理树形结构数据
1. HIERARCHYID 数据类型简介
SQL Server 支持一种基于 CLR 的数据类型 HIERARCHYID ,可用于表示图形结构,为物化路径模型提供了内置实现,非常适合处理树形数据。与自定义物化路径模型类似, HIERARCHYID 值提供拓扑排序,能将节点定位在树中的特定位置。不过,它与自定义模型有两个主要区别:
- 自定义模型的路径由实际节点 ID 组成,而 HIERARCHYID 路径由内部生成的值构成。
- 自定义模型的路径基于字符,而 HIERARCHYID 路径是二进制的。
HIERARCHYID 类型路径的一个主要优点是,与自定义模型的路径相比,它往往更经济。该数据类型的路径编码不能超过 892 字节,但对于大多数树来说,这个限制通常不会有问题。此外,通常需要对路径进行索引,有时会在键列表中添加其他列,而索引键无论如何都限制在 900 字节以内。
需要注意的是, HIERARCHYID 数据类型是 SQL Server 的专有特性。如果注重解决方案的可移植性,可能更适合使用自定义模型,因为它依赖于几乎所有基于 SQL 的方言都支持的基本语言元素:字符串列、整数列和 LIKE 谓词。不过,熟悉 HIERARCHYID 数据类型仍有两个主要原因:
1. 可能需要维护已经使用该数据类型的现有解决方案。
2. SQL Serve
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



