1

我正在使用 ruby​​ on rails 开发一个多租户项目管理应用程序,并且对于为可能不属于特定租户的用户实施访问感到有些困惑。

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

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

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

4

1 回答 1

2

问题是我不希望而且显然没有客户希望这里的每个租户单独登录。

他们实际上确实想要这个,主要是出于法律、审计或安全原因。

多租户正是数据的分离。因此,在登录期间或之后您选择租户。之后,您只能看到该租户的确切数据。以后没有突破:可以切换到另一个租户,但不能合并不同租户的数据。

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

于 2013-06-10T11:03:57.533 回答