代码之家  ›  专栏  ›  技术社区  ›  Jeff Meatball Yang

hierarchyid数据类型是如何工作的?

  •  3
  • Jeff Meatball Yang  · 技术社区  · 15 年前

    我想在SQL Server 2005中创建一个CLR用户定义类型,它具有与hierarchyid相同的性能优势,可以为层次结构建模。

    有人有什么想法/建议吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Jeff Meatball Yang    15 年前

    我发现了——hierarchyId是如何实现的。这是一个光滑的位旋转算法,称为ORDPATH。

    http://www.cs.umb.edu/~poneil/ordpath.pdf

    (通过: http://sqlkpi.com/BLOGS/BOBB/post/ORDPATH-ORDPATH-everywhere.aspx )

    这可能是一个有趣的附带项目。

        2
  •  3
  •   rob mayoff    10 年前

    SQL Server编码 hierarchyid

    你可以找到 等级 在里面 [MS-SSCLRT]: Microsoft SQL Server CLR Types Serialization Formats . 总结一下:

    1. 对每个数字进行编码 n 作为使用可变长度编码的位字符串。如果 . 跟随 ,编码 n+1 而不是 .

      编码的详细信息太长,此处无法包含。请注意,编码必须支持负整数、零整数和正整数。它还必须保持秩序。也就是说,对于整数 a b 有编码 e(a) e(b) ,如果 a > b e(a) > e(b) (当从词汇学角度比较编码时)。

    2. 如果 / 跟在数字后面。如果 . 跟在数字后面。

    3. 连接所有位字符串。