簡體   English   中英

我是否需要在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM