【发布时间】:2011-06-28 19:53:31
【问题描述】:
我的目标是为每个子域设置单独的用户帐户。在任何情况下,我都不想在子域之间进行异花授粉。
我已经查看了 Robby Russle 和 DHH's 的想法(不过两者都是 Rails3 之前的版本)。
控制器处理非常简单,我的问题是关于保持模型的数据分离。阻止 user1 看到 user2 的数据的最佳方法是什么?
一些想法可能包括:
为每个模型添加一个
subdomain_id外键 - 优势,可以使用简单的一对多关系将每个模型限定为子域。 - 缺点,这是数据和更大的应用程序逻辑之间非常紧密的耦合,这似乎不合适。One-to-many :through对于将其与子域关联的每个模型 - 优势,无需将subdomain_id外键列添加到将它们与其子域关联的现有表中。 - 缺点,我的直觉是,这太过分了。多个连接查询可能会变得复杂,并且可能会出现交叉授粉错误。为每个子域单独的应用程序或数据库 - 优势,数据完全隔离。 - 缺点,需要管理/更新/保护/托管/等大量单独的应用程序/数据库。
你的想法?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 multi-tenant