我正在使用 Ruby on Rails 设计 CRM。您如何看待,我是否需要为每个客户公司建立一个单独的数据库?或者我应该为每个人使用相同的数据库?
问问题
160 次
2 回答
2
如果它们是独立的公司或竞争公司(例如白标 CRM),您肯定会希望运行单独的实例,因为这样您就可以可靠地声称完全沙盒。否则,如果您无意中编写了代码,以某种方式允许一个数据显示另一个,那么游戏就结束了。你的客户会跑到山上,告诉每个人他们对你的产品的糟糕体验。
我什至建议您为每个客户运行单独的应用程序实例。Heroku 提供了一种超级简单的方式来部署 RoR 应用程序,因此每当您添加新客户时启动一个新应用程序是一种合理的方法。当然,如果您想要一个允许人们只需注册一个帐户的更全面的解决方案,您将必须有一个实例来在代码中强制执行客户数据沙盒。显然可以做到,但分离并不是在基础设施级别完成,这最终是最安全的方式。
最好的祝福。
于 2012-09-06T19:47:31.073 回答
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 回答