是否有一个数据库可以轻松消化除XML之外的分层数据?

时间:2010-04-16 22:41:03

标签: database database-design hierarchical-data

我很难设计数据库,因为它需要大量的递归。我真的不能使用XML,因为它对于可伸缩性和我需要存储的数据量是不实际的。你们知道一个可以用来存储分层数据的数据库吗?

5 个答案:

答案 0 :(得分:3)

SQL Server 2008具有HierarchyId数据类型。它专门为此任务而设计。正确的索引和键可以让您在深度优先和广度优先搜索中快速访问数据。

http://technet.microsoft.com/en-us/library/bb677290.aspx

答案 1 :(得分:1)

也许你想要一个像LDAP这样的分层数据库? OpenLDAP是免费实施。

答案 2 :(得分:1)

Oracle可以轻松地使用CONNECT BY语法

进行层次结构查询

您可以拥有一个自我参照表,如:

部分

PART_ID
parent_part_id

或几个表,如:

组织

org_id
名称

org_relation

org_id1
org_id2

答案 3 :(得分:0)

如果您对NoSQL开放,那么我建议使用MongoDB。它是面向文档的,所以你没有被束缚到固定的架构。它也具有很高的可扩展性和高性能。其中有很多好的OOP。例如,文档可以包含嵌入的文档,这样如果您的数据库已经设计为XML,那么在MongoDB中存储它将非常简单

答案 4 :(得分:0)

SQL Server还允许您将XML文件存储在单个字段中,然后通过查询轻松地从中解析特定元素/属性