我正在编写一个存储祖先类型数据的 ruby 应用程序。即家谱。
对于应用程序的其余部分,我使用 MongoDB 进行存储,因为它适用于分层结构,但是祖先数据并不完全适合该模型,即使它在某种意义上是分层的。我很好奇是否有人建议我是否应该换一个更合适的数据库层来处理这些问题?
即 A 与 B 配对(双向)并有父母 C 和 D。B 有父母 E 和 F。A 和 B 有孩子 G、H、I。G 与 H 配对,依此类推。
所以它不是很递归,因为一个节点有 2 个父节点。因此嵌入在 MongoDB 中没有意义,因为父母双方都会重复嵌入同一棵树。它更接近社交图,只是更严格(只有两种类型的关系)。我认为 Redis 集会很好地工作,但在我使用 Polyglot 持久性使堆栈复杂化之前,我希望我能从可能设计过类似结构的其他人那里得到一些反馈。我对 Redis 的另一个担忧是将所有这些树存储在内存中可能不是一个好主意,尽管如果我只是将 Redis 中的关系与 MongoDB 文档中的对象数据存储在它可能会没问题。