Rails Basecamp 风格子域最佳实践

2024-01-03

我的目标是为每个子域拥有单独的用户帐户。在任何情况下,我都不想在子域之间进行异花授粉。

我看过了罗比·拉塞尔 http://www.robbyonrails.com/articles/2009/01/11/subdomain-accounts-with-ruby-on-rails-explained, and DHH's http://37signals.com/svn/posts/1512-how-to-do-basecamp-style-subdomains-in-rails想法(虽然都是 Rails3 之前的版本)。

控制器处理非常简单,我的问题是如何保持模型的数据分离。阻止 user1 查看 user2 数据的最佳方法是什么?

一些想法可能包括:

  1. Add a subdomain_id每个模型的外键 -优势,简单的一对多关系可用于将每个模型的范围限定到子域。 -坏处,这是数据和更大的应用程序逻辑之间非常紧密的耦合,这似乎不合适。

  2. One-to-many :through对于将其与子域关联的每个模型 -优势,无需添加subdomain_id现有表的外键列将它们与其子域相关联。 -坏处,我的直觉是,这太过分了。多个连接查询可能会变得复杂,并且可能会出现异花授粉错误。

  3. 每个子域单独的应用程序或数据库 -优势,数据是完全隔离的。 -坏处,需要管理/更新/保护/托管/等大量单独的应用程序/数据库。

  4. 你的想法?


选项 5。Guy Naor 的架构解决方案 http://aac2009.confreaks.com/videos/111-aac2009-writing-multi-tenant-applications-in-rails - 优势,这简直让我大吃一惊。大多数情况下对 Rails 是透明的,完全的数据分离,只有一个数据库,非常适合最初不是设计为多租户的应用程序。惊人的。 -坏处,需要使用 Postgres 或其他支持架构的数据库(无论如何我已经在使用 PG),迁移时需要迭代现有架构。

目前看来,这无疑是最好的方法。有什么重大缺点吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails Basecamp 风格子域最佳实践 的相关文章

随机推荐

  • Sencha touch 2:在itemTpl中获取项目索引

    在XTemplate的文档中 可以使用 来获取当前数组索引 当我在 xlist 的 itemTpl 中使用它时 我总是得到 1 而不是索引 xtype list store myStore itemTpl new Ext XTemplate
  • 多个项目和一种解决方案有什么好处? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在 this(...) 或 super(...) 之前“插入”代码?

    有没有办法在调用之前进行初步计算super or this 构造函数 考虑以下示例 public class Test private final int n private final int m private final int st
  • 使用 JUnit 5 并行执行测试用例

    是否可以与 JUnit 5 并行执行测试用例 我正在寻找类似的东西threadPoolSize and invocationCount from TestNG http testng org doc documentation main h
  • 为 string.Contains 构建表达式树[重复]

    这个问题在这里已经有答案了 我正在努力构建一个表达式树 以便我可以动态地对某些数据进行过滤 我已经想出了这个 但它失败了var lambda line foreach var rule in request Where Rules var
  • 是什么使 Bean 成为 CDI Bean?

    例如 在这个问题的最佳答案中 Java EE 6 javax annotation ManagedBean 与 javax inject Named 与 javax faces ManagedBean https stackoverflow
  • 空类构造函数(样式)

    什么是定义不需要任何构造函数参数的类的 Pythonic 方法 class MyClass class body 或者我们需要一个显式的构造函数吗 IE class MyClass def init pass class body 您的第一
  • 视频缩略图

    我正在开发一个人们可以提交视频链接的网站 然后我就嵌入它 但是 我想获取视频的缩略图而不将视频保存在我的服务器中 这样当我列出视频时 我可以使用缩略图而不是嵌入所有视频 我的服务使用 PHP 假设视频为 SWF 格式 或标签中是否有任何内容
  • CKEditor - 无工具栏

    所以我得到了一个textarea with CKEditor插件 但我只想让它干净 没有任何东西 没有工具栏 没有状态栏或任何栏 这很简单 但我在文档或网络上找不到它 My CKEditor开始于 texto ckeditor skin o
  • 升级到 Swift 3 后,属性“self.delegate”未在 super.init 调用中初始化

    升级到 Swift 3 后 我现在收到此错误 属性 self delegate 未在 super init 调用时初始化 在 NSObject 类上定义 open class NSObject NSObjectProtocol public
  • Android Oreo WebView 在第二次加载后渲染布局太小

    在某些 Android Oreo 设备上 当我第一次在 webview 上加载 url 时 URL 页面会正确加载 但是 当我再次加载 URL 时 页面会缩小 在低于 android oreo 的设备上 页面可以为所有设备正确加载 此外 当
  • VS2008 中“<<”和“++”的运算符优先级优化

    我遇到了一个奇怪的 VS2008 C 问题 看起来运算符优先级没有得到尊重 我的问题是这个的输出是什么 int i 0 std cout lt lt i 0 Not zero zero lt lt i lt lt std endl 通常情况
  • 如何在 WordPress 主题中包含 jQuery?

    我对 WordPress 还很陌生 我正在研究如何将 jQuery 包含到主题中 我将以下函数创建为函数 php theme function load java scripts Load FlexSlider JavaScript tha
  • 在选项卡栏开关上弹出到根导航控制器时出现问题

    尝试模仿 复制内置地址簿 特别是从 电话 应用程序内部编辑联系人或查看现有联系人信息时的行为 当您导航到另一个选项卡时 编辑状态将重置 并弹出 新联系人 或 信息 视图 以便当您返回 联系人 选项卡时 您将返回到根表视图 我使用 setEd
  • 如果没有锚点,则无法使用菜单弹出帮助程序

    我想在操作栏中使用弹出菜单项 当我在活动中使用它时一切正常 但是当我切换到片段时我得到 MenuPopupHelper cannot be used without an anchor 我的片段 Override public boolea
  • Django __str__ 返回非字符串(类型 NoneType)

    我正进入 状态 str returned non string type NoneType 编辑时出错Product模型对象 产品型号 class Product models Model ProductName models CharFi
  • 无法在 Ubuntu 18.04 LTS 上安装 rstanarm

    我无法安装rstanarm on R 3 5 3运行于Ubuntu 18 04 LTS 我使用了以下命令 install packages rstanarm and devtools install github stan dev rsta
  • 如何直接从 R 控制台打开工作目录?

    我怎样才能打开我的getwd 直接从 R 控制台获取文件夹 如果我想查看我最近刚刚导出到那里的东西 这很有用 谷歌搜索没有透露任何信息 我没有能力构建一个函数 如果您确实想要一个文件浏览器 您可以创建一个函数来打开目录 根据您使用的操作系统
  • 导入错误:使用 Azure SDK 时无法导入名称会话

    我正在使用 Azure SDK 运行代码 首先 我通过下载sdkpip install azure 然后我编写运行以下 python 代码 import requests import os make sure you configure
  • Rails Basecamp 风格子域最佳实践

    我的目标是为每个子域拥有单独的用户帐户 在任何情况下 我都不想在子域之间进行异花授粉 我看过了罗比 拉塞尔 http www robbyonrails com articles 2009 01 11 subdomain accounts w