【发布时间】:2012-04-29 04:16:44
【问题描述】:
我有一个表 Person 有 3 列:Id, Name, ParentId 其中ParentId 是父行的Id。
目前,要显示整个树,它必须遍历所有子元素,直到没有更多子元素。好像效率不高。
有没有更好更高效的方法来查询这些数据?
另外,有没有更好的方法在 SQL Server 数据库中表示这种树状结构?我的表/数据库的替代设计?
【问题讨论】:
-
请参阅stackoverflow.com/questions/935098/… 以获取类似问题的答案。
-
查看 Bill Karwin 的 SQL Antipatterns strike back 幻灯片 - 他描述了几种反模式 - 其中包括您拥有的“幼稚树” - 并提供了可能的解决方案。他还有一本同名的好书SQL Antipatterns - 强烈推荐!
标签: sql-server database sql-server-2008