1

RubyonRailsを使用してCRMを設計しています。クライアント企業ごとに個別のデータベースが必要だと思いますか?または、すべての人に同じデータベースを使用する必要がありますか?

4

2 に答える 2

2

私は次のように単一のデータベースでそれを行います:

class Company < ActiveRecord::Base
  has_many :records

  def recent_records
   records.desc(:created_at)
  end
end

class Record < ActiveRecord::Base
  belongs_to :company
end 

次に、コントローラーで次のように記述できます。

@records = @company.recent_records

そしてそれをビューに伝えます。

お役に立てれば。

于 2012-09-06T19:56:35.797 に答える
2

それらが別の会社または競合する会社 (ホワイト ラベルの CRM など) である場合は、完全なサンドボックス化を確実に主張できるため、別のインスタンスを実行することをお勧めします。それ以外の場合、一方のデータをもう一方のデータに表示できるようにするコードをうっかり書いてしまった場合は、ゲームオーバーです。あなたの顧客は丘に向かって走り、あなたの製品でのひどい経験についてみんなに話します.

顧客ごとにアプリのインスタンスを個別に実行することをお勧めします。Heroku は RoR アプリをデプロイするための非常に簡単な方法を提供するため、新しい顧客を追加するたびに新しいアプリをスピンアップするのが妥当なアプローチです。もちろん、ユーザーがアカウントにサインアップするだけで済む、よりターンキーなソリューションが必要な場合は、コードで顧客データのサンドボックス化を強制する単一のインスタンスが必要になります。明らかにそれは可能ですが、最終的に最も安全な方法であるインフラストラクチャ レベルでの分離は行われません。

よろしくお願いします。

于 2012-09-06T19:47:31.073 に答える