当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《什么类型的NoSQL数据库最适合存储分层数据?》经验,为你挑选了3个好方法。

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

比方说,我想存储具有树结构的论坛的帖子:

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

orangepips.. 31

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

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



1> orangepips..:

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

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



2> Maxim Gueiva..:

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

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



3> Ripal Barot..:

这是图数据库.可以用作树数据库.

http://neo4j.com/

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有