什么类型的 NoSQL 数据库最适合存储分层数据?
例如,我想用树结构存储论坛的帖子:
original post
+ re: original post
+ re: original post
+ re2: original post
+ re3: original post
+ re2: original post
最佳答案
MongoDB 和 CouchDB 提供解决方案,但不提供内置功能。在 representing hierarchy in a relational database 上查看此 SO 问题因为我见过的大多数其他 NoSQL 解决方案在这方面都是相似的;在添加、删除和移动节点时,您必须编写自己的算法来重新计算该信息。一般来说,您要在快速读取时间(例如 nested set)或快速写入时间(adjacency list)之间做出决定。有关这些方面的更多选项,请参阅上述 SO 问题 - flat table approach似乎最符合您的问题。
一个确实抽象掉这些考虑因素的标准是 Java Content Repository (JCR),两者都是 Apache JackRabbit和 JBoss eXo是实现。请注意,在幕后,两者仍在进行某种算法计算以维护如上所述的层次结构。此外,JCR 还处理权限、文件存储和其他几个方面——因此它对您的项目来说可能有点过头了。
关于database - 什么类型的 NoSQL 数据库最适合存储分层数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767944/