2010-03-09 106 views
10

分层数据结构通常存储在关系数据库中。这种存储是灵活而平坦的,所以树结构必须与每个查询一起构建。我希望将论坛帖子存储为树状结构,但应该可以高效查询,例如按日期或作者选择帖子。如何在Java中存储树结构?

我想要一个可从Java访问的开源数据库。

这样做的最佳方法是什么? CouchDB的? Neo4j的? ...?

+1

ORM怎么样? – 2010-03-09 12:24:58

+1

ORM会使处理更加方便,但底层数据结构仍然保持关系,可能性能不太好。 – deamon 2010-03-09 14:40:02

+0

另请参见:[在关系数据库中存储分层数据的选项是什么?](http://stackoverflow.com/questions/4048151/what-are-the-options-for-storing-hierarchical-data-in-关系数据库) – cbare 2012-12-18 14:14:40

回答

7

当我第一次遇到这个问题时,我找到了很棒的文章(link)。

在寿的话:在RDBMS世界上主要有2树模型存储方法:

  • 邻接表型号
  • 嵌套集模型
+0

该文章仅适用于oracle登录。 – zellus 2011-11-16 15:41:31

+0

链接已更新(在其他位置找到同一文章) – 2011-11-16 17:07:34

+0

感谢您的快速反应。 – zellus 2011-11-16 19:26:40

4

这里有一个关于Neo4j的一个great article。一般来说,它看起来像neo4j是你的最佳选择,因为文档数据库仍然相对平坦,并可能导致一些awkward setup(尽管如此)。

Neo4j作为一个图形数据库,应该非常适合存储你的树。我从来没有使用它,但考虑到你的问题领域,它似乎是最好的选择(至少首先要调查的那个)。

就“最佳方式”而言,我认为这取决于您的实施和要求。我想你应该针对图形数据库,文档数据库,object database和关系数据库(或不是)编写一个简单的测试,看看哪一个适合您要解决的问题。