(使用Ruby on Rails和ActiveRecord)
简而言之:模型如何为每个请求使用不同的数据库架构?
为什么我需要id:我有一个工作的内部网应用程序为一家公司工作,但我决定将其提供给其他公司。 Rails的方法是将company_id添加到每个模型,并始终使用此范围。但是为每个公司制作单独的数据库架构会更有意义。有一些标准的方法怎么做?
谢谢!
答案 0 :(得分:2)
为每家公司单独设置一个应用程序实例会出现什么问题?
答案 1 :(得分:1)
将company_id添加到所有模型绝对是最佳选择。你所谈论的内容很难长期管理,确保正确的连接用于存储正确的数据可能很棘手。
尽管分化这样的分层很烦人,但可以在相当短的时间内完成并证明,之后事情将更容易管理。使用named_scope,使用这样的属性进行过滤并不困难。
简单的替代方案是多次部署应用程序,每个公司使用不同的database.yml,其中数据在应用程序级别上隔离,而不是在应用程序内。
使用Passenger(mod_rails)和一些shell脚本编写它会很容易。