2

これは以前に尋ねられたと確信していますが、インターウェブを読むのに数日を費やしましたが、スケーラビリティは別として、NoSQL ドキュメント DB (キー値ストアではない) のユースケースを理解できませんでした.

スケーラビリティが私の関心事ではない場合、次のシナリオのいずれかで NoSQL ドキュメント DB を使用することは理にかなっています。

  1. モデルの 40% 以上がポリモーフィックな関連付けである場合
  2. オブジェクト全体を意味のあるものにするために、約 8 つのモデルを熱心にロードする必要があるとしたら?
  3. アプリに組み込まれたミニ CMS など、すぐにEAVに変わるアプリケーションの部分があるとしたらどうなるでしょうか。

ツールチェーンの成熟度はどうですか? さまざまな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 (Eager Loading セクション)

  • アプリに埋め込まれたミニ CMS など、すぐに EAV に変わるアプリケーションの部分があるとしたらどうなるでしょうか。

    構造化されていないスキーマレス データを処理する方法があるため、mongodb は EAV に最適だと思います。

複数のプロジェクトで Ruby mongoid gem を使用した経験があります。多くの機能を備えた、堅実で適切に設計されたライブラリ。これは Rails アプリであるため、rspec や cucumber などのさまざまなテスト フレームワークをテストに使用できます。ここでrspecのマッチャーをチェックしてください https://github.com/evansagge/mongoid-rspec

于 2012-11-05T15:02:57.297 に答える