[英]Should I use multiple databases in this situation (Ruby on Rails)
[英]Do I need to use multiple databases in Ruby on Rails application?
我正在使用Ruby on Rails設計CRM。 您如何看待我是否需要為每個客戶公司提供單獨的數據庫? 或者我應該為每個人使用相同的數據庫?
如果他們是獨立的公司或競爭公司(比如說白色標簽CRM),你肯定會想要運行單獨的實例,因為那時你可以可靠地聲稱總沙盒。 否則,如果你無意中編寫的代碼以某種方式允許一個數據顯示另一個,則游戲結束。 您的客戶將跑到山上,告訴每個人他們對您產品的糟糕體驗。
我甚至建議您為每個客戶運行應用程序的單獨實例。 Heroku提供了一種部署RoR應用程序的超級簡單方法,因此無論何時添加新客戶,都可以啟動新的應用程序,這是一種合理的方法。 當然,如果您想要一個允許人們只注冊帳戶的更具交鑰匙的解決方案,您必須擁有一個實例來強制執行代碼中的客戶數據沙箱。 顯然它可以完成,但分離不是在基礎設施層面完成的,這最終是最安全的方式。
最好的祝福。
我使用單個數據庫,如下所示:
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
並將其傳遞給觀點。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.