什么类型的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?