程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> :SQL Server中的新數據類型:HierarchyId

:SQL Server中的新數據類型:HierarchyId

編輯:關於SqlServer
對於關系型數據庫來說,表現樹狀的層次結構始終是一個問題。微軟在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類型二進制與字符串表現形式之前的轉換。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved