我已经研究了很多电子商务项目的最佳多租户设置,但找不到合适的答案。我倾向于使用与MySQL或PostgreSQL共享的独立数据库架构设置。所有租户的表格结构都是一样的。我真的很喜欢这种设置,应用程序代码不需要为每个查询提供额外的WHERE
子句,所以它非常适合开发者!Postgres电子商务共享架构多租户设置SaaS
现在你还有共享模式方法,这就是我目前使用的方式,但是我觉得这对安全和隔离目的是不利的。我想转到不同的解决方案。
这个应用程序今年将用于+ - 100网店(一个租户),我预计它将增长到成千上万。网上商店的范围从小到大,因此我可以稍后挑选特定商店数据并将其放入其自己的数据库服务器中,这一点非常重要。
由于我没有任何单独架构设置的经验,我想知道这是否会使我受益。走这条路时可能会遇到什么问题?特别是随着表格结构的变化,这是最让我困扰的。在使用PostgreSQL的单独模式方法(我将有100-1000个模式)中使用模式的限制是什么?
感谢您对此发表看法!对于仪表板统计信息,我使用的是ElasticSearch,因此部分数据(产品,订单,客户)也存储在那里,因此我不可能收集跨租户的统计信息。我更想知道管理一千种不同的模式有多糟糕。 对于性能我认为单独的模式也好多了,因为每个租户的持久性数据将被分开。不知道如何在共享模式中实现这样的性能?另外备份或移动租户到它自己的更大的数据库似乎更容易与分离的架构设置。 –
Hi @Steffen Brem,请注意,我认为订单表可以扩展到单独的数据库,使用Redis缓存中变化最小的客户配置文件,我们可以通过代码实现目标,并允许缓存和扩展数据库以默认方式工作。请分享你的想法。 – Saravanan