写点什么

SQL Server 中的新数据类型:HierarchyId

  • 2007-12-02
  • 本文字数:766 字

    阅读完需:约 3 分钟

对于关系型数据库来说,表现树状的层次结构始终是一个问题。微软在 Sql Server 2005 中首次尝试了解决这个问题,那就是被称之为通用数据表表达式( Common Table Expressions ,CTE)的实现方式。

尽管 CTE 在现有的数据库架构中运行良好,微软找到了一种将此类层次结构作为头等概念来使用的方式。因此为了实现这种效果,他们在 SQL Server 2008 中提出了一种“HierarchId”数据类型。

在传统的层次结构中,一条记录仅仅储存了一个指向它父记录的引用,这使得一条记录能够获得它在层次结构中的相对位置,而不是绝对位置。改变某条记录的父数据行引用是一个原子更新操作,它不会影响到该记录的任何子记录。

一个 HierarchyId 类型的字段储存了记录在层次结构中的准确位置。 Denny Cherry 提供了一个例子,其中展示了 0x、0x58 以及 0x5AC0 三个值,它们的字符串表现形式分别为“/”,“/1/”和“/1/1/”。这就引发了有关一致性和性能方面的问题,尤其是父记录被改变的时候。 Ravi S.Maniam 建议在改变父记录操作不频繁的情况下使用这种设计方式。

与 HierarchyId 类型同时出现的还有一系列函数。GetAncestor 和GetDescendant 方法可以用来遍历树。ToString 和Parse 方法用于HierarchyId 类型二进制与字符串表现形式之前的转换。有些古怪的是,随之而来的还有用于支持BinaryReader 与BinaryWriter 的一些方法。

再来回头看看GetDescendant,这是一个有些古怪的方法。它实际上不返回那些子记录,而是返回那些潜在的子节点的位置。向树中插入一个新的记录时,我们必需调用GetDescendant 方法来获得指定父记录的最后一个子节点的位置,然后才能获得紧跟着该位置之后的空隙。

迄今为止还没有使用T-SQL 来获得树状结构的合适示例。事实上,与它有关的所有东西都更像是一些命令,而不是基于基于集合的操作。

查看英文原文: New SQL Server Data Type: HierarchyId

2007-12-02 20:491381
用户头像

发布了 157 篇内容, 共 57.5 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

AIGC时代,如何为“数据飞轮”提速

字节跳动数据平台

大数据 数据中台 数据治理 数据安全 数据研发

DDD-3-领域模型

南山

领域驱动设计 DDD 领域模型

基于空域时空图卷积的步态情绪识别方法

天翼云开发者社区

云计算 云服务 卷积

华为云低代码AstroZero技巧教学2:轮播组件的魅力 玩转视觉营销

华为云PaaS服务小智

低代码 华为云 网站设计

【云管小知识】云管平台可以纳管网络设备吗?

行云管家

云计算 云服务 云管理

与人类产生情感共鸣?数字华夏推出“夏澜”人形机器人;微软Azure AI语音服务推出虚拟人形象|AI日报

可信AI进展

VOI云桌面与“无盘”是什么样的关系

上海锐起科技

桌面云 云桌面

MES系统:企业工单管理难题的智能化钥匙

万界星空科技

mes 万界星空科技 工单管理 生产管理MES系统 生产工单

走出舒适圈,将自动化智能技术作为财务增长的催化剂

智达方通

数字化转型 企业管理 全面预算管理 企业成长

SD-WAN供应商有哪些类型?怎么选择?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

虚拟化技术简介

天翼云开发者社区

云计算 虚拟化技术

Go必知必会:其实学Go很简单。

王中阳Go

Go 编程 Go入门

淘宝官方商品、交易、订单、物流、插旗接口接入说明

tbapi

淘宝API 淘宝店铺订单接口 淘宝店铺订单详情接口 淘宝店铺订单物流接口 淘宝店铺订单列表接口

DDD-5-统一语言

南山

领域驱动设计 DDD 领域驱动 统一语言

SD-WAN在教育行业的应用与优势解析

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

个人博客导航如何创建更有个性化

博客趣

个人博客 博科趣 m.bokequ.com 博客导航

优化商品搜索关键词:基于API返回值的智能策略

代码忍者

API 测试 API】

大型数字化企业采购堡垒机的五个必要性

行云管家

数字化 数据安全 堡垒机

DDD-4-领域建模

南山

领域驱动设计 DDD 领域建模 领域模型

可图大模型再进化,实现AI试衣自由!

快手技术

AI技术

SQL Server中的新数据类型:HierarchyId_.NET_Jonathan Allen_InfoQ精选文章