Ruby on rails 多租户应用程序-访问不属于特定tenat的用户,例如:客户

Ruby on rails 多租户应用程序-访问不属于特定tenat的用户,例如:客户,ruby-on-rails,multi-tenant,Ruby On Rails,Multi Tenant,我正在RubyonRails中开发一个多租户项目管理应用程序,在为可能不属于特定租户的用户实现访问方面有点陷入困境 例如,我们有用户Bob和Martha,他们属于租户a,或者还有另外两个用户Jim和Jill属于租户B。现在我们有一个名为Mark的客户,他是两个租户的客户。两个租户都有项目,我需要为客户构建一个可访问的表单,以便客户可以登录并查看他的项目。问题是,我不想,显然没有客户会希望每个租户在这里单独登录。我对自己编写租户管理代码很感兴趣,但是我对如何实现这一点有点困惑 我正在实现基于行的租

我正在RubyonRails中开发一个多租户项目管理应用程序,在为可能不属于特定租户的用户实现访问方面有点陷入困境

例如,我们有用户Bob和Martha,他们属于租户a,或者还有另外两个用户Jim和Jill属于租户B。现在我们有一个名为Mark的客户,他是两个租户的客户。两个租户都有项目,我需要为客户构建一个可访问的表单,以便客户可以登录并查看他的项目。问题是,我不想,显然没有客户会希望每个租户在这里单独登录。我对自己编写租户管理代码很感兴趣,但是我对如何实现这一点有点困惑

我正在实现基于行的租赁,即每个模型都会在此处引用租户模型,并且登录用户可以编辑和添加属于其租户的任何内容。但是,对于客户或可能需要访问多个租户的顾问用户,我如何在此处设置结构

理想情况下,客户希望能够登录并查看租户/公司不同的所有项目的列表。如何设置此结构?此外,我希望保持这种开放性,以便TenantB的用户也可能是TenantA的客户机

问题是,我不想,显然没有客户会希望每个租户在这里单独登录

他们确实希望这样做,主要是出于法律、审计或安全原因

多租户恰恰意味着数据的分离。因此,在登录期间或之后,您可以选择租户。之后,您只会看到该租户的确切数据。以后不会有突发事件:可以切换到另一个租户,但不能合并不同租户的数据


如果这不是你想要的,考虑重新设计你的数据模型:在项目和人之间可能有分配。通过在项目中使用外键链接回客户,客户可以拥有自己的项目。这种数据模型方法不同于使用多租户方法,多租户方法实际上是一种在行或实例级别分离数据的技术手段。

Hmmm这实际上是有意义的,因为目前租户模型似乎是一种过度的开销。我还没有意识到,即使是basecamp似乎也已经明显地脱离了基于子域的租户模型——或者可能是我假设的。我将按照你所说的,制定一个不同的模型设计-谢谢。