SQL很好地检索树结构

Tom*_*len 7 sql sql-server tree database-design

鉴于简单的数据结构:

ID    |    Category_Name    |    Parent_ID
Run Code Online (Sandbox Code Playgroud)

例:

1          Cars                    0
2          Boxes                   0
3          Lamborghinis            1
4          VW Camper Vans          1
5          Big Boxes               2
6          Small Boxes             2
7          Cereal Boxes            2
8          Broken Lambos           3
9          Yellow Ones             3
10         Rusty                   8
11         Milkshake Stained       8
12         Chocolate Flavour       11
13         Strawberry              11
14         Indiscernible Solution  11
Run Code Online (Sandbox Code Playgroud)

代表一个简单的树导航结构,以编程方式检索可呈现格式的树的最佳方法是什么?我们可以创建一个SQL语句来"按顺序"检索它们吗?

谢谢你的帮助!如果我的方法有误,请随时发表评论.

我正在使用SQL-Server 2000.

Mla*_*dic 2

如果您使用的是 SQL Server 2008,您可能想尝试新的Hierarchyid数据类型。

如果您不是,那么另一种方法是研究适用于所有数据库的嵌套集模型。

如果您使用的是 SQL Server 2005 及更高版本,则可以使用递归 CTE来检索树结构。