我打算使用Rails构建一个应用程序。它使用Apartment gem和PostgreSQL来实现多租户。该应用程序将有用户,每个用户都有一个帐户。这意味着每个用户都拥有自己的PostgresSQL模式;用户表位于默认架构中。Rails + Postgres:多租户做对了吗?
每个用户在自己的模式中都有自己的客户列表。具有相同电子邮件的客户(本质上是相同的客户)可以出现在多个模式中。我希望客户能够登录并查看与其关联的所有用户。我无法将customers表放置在默认/公共架构中,因为它与其他不在默认架构中的表相关。
我想我会做的是在公共架构中创建客户和用户之间的链接表。该表格将包含客户的电子邮件和用户的ID。我的问题是,我不明白这将如何与Rails一起工作。我想实现的是类似customer.users
。
所以问题是:我应该如何解决这个问题?
您似乎在说有些用户是租户,有些用户是客户。 (由于客户可以登录,因此他们是用户的某种意义上的)。并且希望客户能够跨所有租户进行查询,因为用户和客户之间的映射存储在特定于租户的架构中。但是,这不是多租户架构应该预防*的那种事情吗? –
@ MikeSherrill'Catcall'谢谢你的回答。我花了几天的时间思考,并且我意识到,就我而言,多租户有更多的缺点而不是优点。我将在没有多租户的情况下构建我的Rails应用程序。 –