何时使用递归表

时间:2010-08-10 04:04:16

标签: sql sql-server tsql sql-server-2008 hierarchical-data

我需要构建一个支持目录的模式结构(因此我添加的每本书或文档的部分/子部分的级别可能会发生变化)...我的第一个想法是我可以使用一个递归表来处理它。我想确保我的结构是规范化的,所以我试图远离将目录数据反规范化为单个表(然后在有更多子部分时必须添加列)。

构建递归表似乎并不正确,并且可能有点难以填充。

只是想了解一些替代解决方案或者递归表是否正常。

谢谢,

取值

2 个答案:

答案 0 :(得分:2)

有助于SQL Server 2008同时具有递归的WITH子句和hierarchyid,以便更轻松地处理分层数据 - 我昨天向某人指出MySQL也没有,这使得事情变得困难......

最重要的是要检查您的数据 - 如果您可以将其标准化为单个表格,那就太好了。但是,不要将其设置为适合单个表设置 - 如果它需要更多表,那么就这样设计它。数据&用法将向您展示正确的建模方法。

答案 1 :(得分:0)

如有疑问,请保持简单。您收集类似物品的地方,例如员工然后一个引用自己的表是有道理的。在这里你可以争论(非常正确地)表格中的每个项目都是某种形式的“部分”,除非你习惯于将数据建模为部分并通过与这些实体的关系处理不同类型的部分,我会避免使用自引用表的复杂性并坚持使用标准化方法。