我即将建立一个SAAS产品使用铁路和邮政。我想知道我是否应该遵循模式级别,基于子域的多租户或单个租户应用程序是否足够好的架构?我的需求在客户端之间没有数据的可靠性,因此基于模式的多租户体系结构在我看来是正确的。请任何人进一步解释一下,为什么它是好的还是坏的,以及相关的解释?
发布于 2017-11-23 11:58:44
下面是是公寓 gem的创建者的一篇文章,它暗示他们将来不会使用模式-每个租户的方法。
上述问题的最终结果导致我们在多租户问题上放弃了单独的模式方法。对于我们未来构建的所有服务,我们使用了一种更传统的列作用域方法,并编写了我们自己的包装器,它有效地模仿了公寓提供的按请求租用的方法。
如果您正在部署到Heroku,就会有一个关于每个租户架构的警告影响托管备份工具的性能:
在数据库中使用多个模式的最常见的用例是构建一个软件即服务应用程序,其中每个客户都有自己的模式。虽然这一技术看起来很有说服力,但我们强烈反对它,因为它造成了许多操作问题。例如,即使有少量的模式(> 50)也会严重影响Heroku的数据库快照工具PG备份的性能。
对于最大限度的数据隔离,采用按租户计算的数据库方法是合适的。
对于最简单的操作,每个表都可以使用tenant_id列对查询进行范围调整,并且可以使用行级安全策略强制执行。
https://stackoverflow.com/questions/47453462
复制相似问题