ruby - 对 Ancestry 类型数据库 : MongoDB, Redis 等的建议?

标签 ruby mongodb hierarchy redis polyglot

我正在编写一个存储祖先类型数据的 ruby​​ 应用程序。 IE。家谱。

对于应用程序的其余部分,我使用 MongoDB 进行存储,因为它适用于分层结构,但是祖先数据不太适合该模型,即使它在某种意义上是分层的。我很好奇是否有人建议我是否应该换成更合适的数据库层来处理这些问题?

即A 与 B 配对(双向)并且有父 C 和 D。B 有 parent E 和 F。A 和 B 有 child G、H、I。G 与 H 配对,依此类推。

所以它不是很递归,因为一个节点有 2 个父节点。因此,嵌入在 MongoDB 中没有意义,因为 parent 双方都会重复嵌入同一棵树。它更接近社交图谱,但更严格(只有两种类型的关系)。我认为 Redis 集会工作得很好,但在我使用 Polyglot 持久性使堆栈复杂化之前,我希望我能从其他可能设计过类似结构的人那里得到一些反馈。我对 Redis 的另一个担忧是将所有这些树存储在内存中可能不是一个好主意,尽管如果我只将关系与 MongoDB 文档中的对象数据存储在 Redis 中可能没问题。

最佳答案

也许您应该尝试图形数据库,因为它听起来更接近领域。那里有很多你可以试试 http://nosql.mypopescu.com/post/498705278/quick-review-of-existing-graph-databases

关于ruby - 对 Ancestry 类型数据库 : MongoDB, Redis 等的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241943/

相关文章:

ruby-on-rails - 回形针不保存,没有错误

ruby-on-rails - #<User :0x007f28a2101568> Did you mean? lock_access 的未定义局部变量或方法 `locked_at'

node.js - Angular2 ExpressJs - 文件上传到服务器

ruby-on-rails - Mongoid "criteria"是如何工作的?

c# - .NET 中对象的锁定层次结构

ruby - 默认 ruby​​ 版本的 RVM 问题

ruby - 如何编写在不同系统上运行的 ruby​​ 脚本

mongodb - 客户端退出后 Pymongo 放弃 "pymongo_kill_cursors_thread"

java - Java中的Yamaha DX7单位生成器合成器

php - Symfony2 递归查询生成器