2

我确定以前有人问过这个问题,但是我花了几天时间阅读互联网,但除了可扩展性之外,还无法弄清楚 NoSQL 文档数据库(不是键值存储)的用例.

所以这是我的问题,如果我不关心可扩展性,那么在以下任何情况下使用 NoSQL 文档数据库是否有意义:

  1. 如果我的模型中有超过 40% 是多态关联
  2. 如果需要预先加载大约 8 个模型才能使整个对象有意义,该怎么办?
  3. 如果应用程序的某些部分迅速变成EAV ,例如嵌入到应用程序中的迷你 CMS,该怎么办。

工具链成熟度如何?各种 Rails 3 宝石?测试框架?

基本上,让我的应用程序更快上市的务实选择是什么?在数据模式不固定的情况下,哪个是更大的问题 - 数据存储或处理应用程序中的数据?

4

1 回答 1

3

我相信 mongodb & mongoid 非常适合您的需求

  • 如果我的模型中有超过 40% 是多态关联。

    Mongoid 内置多态功能。您可以在这里查看 http://mongoid.org/en/mongoid/docs/relations.html(多态部分)

  • 如果需要预先加载大约 8 个模型才能使整个对象有意义,该怎么办?

    mongoid 还有一个预先构建的急切加载选项。您可以在这里查看http://mongoid.org/en/mongoid/docs/querying.html(急切加载部分)

  • 如果应用程序的某些部分迅速变成 EAV,例如嵌入到应用程序中的迷你 CMS,该怎么办。

    我相信 mongodb 最适合 EAV,因为它处理非结构化无模式数据的方式。

我在多个项目中使用 Ruby mongoid gem 有很好的经验。其坚如磐石且设计精良的库具有许多功能。由于它是一个 rails 应用程序,因此您可以使用任何不同的测试框架,例如 rspec 或 cucumber 进行测试。在此处查看 rspec 的匹配器https://github.com/evansagge/mongoid-rspec

于 2012-11-05T15:02:57.297 回答