哪种类型的NoSQL数据库最适合存储分层数据?
举个例子,我想用树形结构存储一个论坛的帖子:
original post
+ re: original post
+ re: original post
+ re2: original post
+ re3: original post
+ re2: original post发布于 2011-01-24 01:28:41
MongoDB和CouchDB提供了解决方案,但没有内置功能。在representing hierarchy in a relational database上可以看到这个问题,因为我见过的大多数其他NoSQL解决方案在这方面都是相似的;在这些解决方案中,您必须编写自己的算法,以便在添加、删除和移动节点时重新计算信息。一般来说,你是在快速读取时间(例如nested set)还是快速写入时间(adjacency list)之间做出选择。请参阅前面提到的SO问题,了解这些问题的更多选项- flat table approach与您的问题最接近。
Apache JackRabbit和JBoss eXo都是Java Content Repository (JCR),它确实抽象了这些注意事项。请注意,在幕后,两者仍在进行某种算法计算,以维护如上所述的层次结构。此外,JCR还处理权限、文件存储和其他几个方面-因此它对您的项目来说可能有些过分了。
发布于 2011-01-22 22:57:46
您可能需要一个像MongoDB或CouchDB这样的面向文档的数据库。
查看允许您在MongoDB中存储分层数据的不同技术的示例:http://www.mongodb.org/display/DOCS/Trees+in+MongoDB
发布于 2011-03-03 21:15:32
最常见的是IBM's IMS.There也是Cache Database
https://stackoverflow.com/questions/4767944
复制相似问题