问题描述
我一直在努力建立多租户环境。在上一个项目中,我将其设置为一个整体,其中有一个租户实体将正确的数据彼此绑定。这种方式很容易设置,但是所有租户的数据都在一个大数据库中。
我现在的想法是以不同的方式进行设置。我将使用Postgres,因为它也可能具有“模式”。我的想法是在公共架构中拥有总体数据,在租户自己的架构中拥有特定于租户的数据。
我遇到了一些挣扎,无法忍受的挣扎。在下面的图片中,您可以快速看到这两种情况。底部的公共架构中包含所有内容,而上面的一个则在公共架构中包含域和用户。
我的想法是,当客户转到租户特定的URL时,应用程序不必爬网所有可能的模式。用户数相同。当用户想要登录到应用程序时,我们也不想爬网所有模式。但是,如何正确设置呢?
此外,当用户管理其域(添加/编辑/删除)时,他实际上是在公共架构上进行管理。还是应该完全避免使用public?我考虑将它们放在这里,因为否则,当用户进入新域时,我还必须在其他租户架构上检查它们。
我还可以简单地在域中设置租户的架构名称,还是应该使用连接字符串?
我还在这里和那里阅读了有关多租户的信息,但是我不确定应用程序如何通过使用不同的架构(公共)从租户架构中获取正确的数据来获取租户的数据。 我应该根据对域(公共架构)或客户(特定于租户)的调用使用控制反转来获得特定的实现吗?
https://nebulab.it/blog/how-to-switch-solidus-ecommerce-to-multi-tenant/
https://michael-mckenna.com/multi-tenant-asp-dot-net-core-application-tenant-resolution
Which Multi-tenant approach is recommended
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)