5

Heroku でマルチテナント アプリ (互いに何も知らない複数のアカウント) を使用していますが、データベースを最適に設計する方法がわかりません。Postgres のスキーマはすばらしく見えますが、heroku は多数のスキーマをうまく処理できません。

現在、ほとんどのテンプレートがクライアント側で (Backbone.js を使用して) レンダリングされているため、私の Rails アプリは主に JSON を提供しています。そのため、MongoDB への移行を検討しています。その理由は、1) 各テナントが 1 つの最上位の「アカウント」ドキュメントを取得でき、その下にすべてをネストできること、および 2) そのストレージ形式が JSON に非常によく似ていることです。まだベータ版なので、うまくいく可能性があります。これらは Mongo を使用する正当な理由ですか? 前者は Mongo を使用する賢い方法でさえありますか?

私が postgres に固執する場合、すべてが最上位の Account モデル (インデックス付き) に属するべきでしょうか? もしそうなら、どのように結合を処理しますか? マルチインデックス結合を実行することは可能ですか (postgres noob の合計)?

これまでのところ、1 つのテーブルに約 60,000 のエントリがありますが、1 つのアカウントには 200 ~ 1000 しかない場合があるため、テーブル全体に参加することを心配しています。

どんな助けにも本当に感謝します。

アップデート:

最終的に VPS (Rackspace Cloud) に移行し、postgres のスキーマを実装しました。Heroku よりもはるかに高速に実行され、サーバーをより細かく制御できるため、この移行に後悔はありません。

4

1 に答える 1

2

postgres でマルチテナンシーを行うために書かれたこの gem をチェックしてくださいhttp://railscraft.tumblr.com/post/21421806379/multi-tenanting-ruby-on-rails-applications-on-heroku

于 2012-06-20T06:29:39.960 に答える