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

标签 database tree nosql hierarchical-data

什么类型的 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 JackRabbitJBoss eXo是实现。请注意,在幕后,两者仍在进行某种算法计算以维护如上所述的层次结构。此外,JCR 还处理权限、文件存储和其他几个方面——因此它对您的项目来说可能有点过头了。

关于database - 什么类型的 NoSQL 数据库最适合存储分层数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4767944/

相关文章:

java - 如何找到主键最大的实体?

mysql - 将定义选项的子集存储到另一个表列中

rust - 从格式化的输入构建树

mysql - 使用 NoSql?如果是的话怎么办?

database - 从另一个表创建一个表而不填充它

database - 将图像存储在数据库中

java - 二叉树的前序遍历。如果与同时

python - sklearn python 错误。标识符中的无效字符

python - Mongoengine PointField 给出预期的位置对象,位置数组格式不正确错误

postgresql - 存储日志,nodeJS postgreSQL 与 noSQL