RubyonRailsを使用してCRMを設計しています。クライアント企業ごとに個別のデータベースが必要だと思いますか?または、すべての人に同じデータベースを使用する必要がありますか?
質問する
160 次
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 に答える