0

我正在开发一个分层对象模型,它作为 0/1 --> * 关系自引用。没有 parentID 的对象是根元素。parentID 也是自联接的外键。据我了解,使用 parentID 作为外键只会指向可能找到子元素的列->这是否会强制迭代该列的整个数据集?这是应该形成聚集索引的场景吗?....使用 XML 数据类型将所有 childrenID 存储在单个字段中然后为每个对象加载和引用该文档是否合适?似乎这样做至少可以让我简化我的对象持久层并让我更好地控制记录事务。

有什么建议吗?

4

1 回答 1

1

我强烈建议不要使用 XML 来存储子 ID。试图在以后维护它会引起无数麻烦,更不用说在应用程序之外使用它(例如,从报告解决方案或 ETL 中)。

您是否查看过 HIERARCHYID 数据类型?它在 SQL 2008 中,在这里可能对您有用。我不知道各种编程语言/ODBC/OLE DB 对它有什么样的支持,但是您可以使用 .ToString() 将其转换为字符串,并且可以很容易地进行操作。然后它还允许您在 T-SQL 中使用 HIERARCHYID 的其他方法,例如 .GetAncestor() 等。

于 2010-07-07T14:15:01.933 回答