什么类型的NoSQL数据库最适合存储分层数据?

什么类型的NoSQL数据库最适合存储分层数据?

举例来说,我想存储具有树形结构的论坛的帖子:

original post
 + re: original post
 + re: original post
   + re2: original post
     + re3: original post
   + re2: original post

这是图形数据库。 可以用作树数据库。

http://neo4j.com/


MongoDB和CouchDB提供了解决方案,但没有内置功能。 看到这个SO关于在关系数据库中表示层次结构的问题,因为我见过的大多数其他NoSQL解决方案在这方面是相似的; 您必须编写自己的算法,以便在节点添加,删除和移动时重新计算该信息。 一般来说,您正在快速读取时间(例如嵌套集)或快速写入时间(邻接列表)之间做出决定。 请参阅前面提到的SO问题,以获得更多的选项 - 扁平桌方法与您的问题最为一致。

一个抽象出这些考虑因素的标准是Java内容存储库(JCR),Apache JackRabbit和JBoss eXo都是实现。 请注意,在幕后,两者仍在进行某种算法计算,以便如上所述维护层次结构。 另外,JCR还处理权限,文件存储以及其他几个方面 - 所以它可能对您的项目过度。


您可能需要的是面向文档的数据库,如MongoDB或CouchDB。

查看允许您在MongoDB中存储分层数据的不同技术示例:http://www.mongodb.org/display/DOCS/Trees+in+MongoDB

链接地址: http://www.djcxy.com/p/93873.html

上一篇: What type of NoSQL database is best suited to store hierarchical data?

下一篇: When shouldn't you use a relational database?