我正在尝试构建一个 Multi-Tenancy SaaS 应用程序,我知道有多种方法,但我选择了我认为最适合的多数据库方法。
所以我为每个租户创建一个数据库,并在主数据库中存储一个租户表 并根据子域将用户连接到各自的数据库。
现在我的问题是在主数据库中存储用户的位置?或租户数据库,将用户存储在主数据库中将难以在其他数据库中获取用户相关模型,但将其存储在租户数据库中将难以对所有用户进行身份验证 ...
最好的场景是什么?
- 验证,获取 jwt token 。
- 随每个请求发送 token 。
- 在每个请求上验证 token 、检查子域、连接到相应的租户数据库、执行请求。
这是一个好方法吗?我应该如何处理用户表问题? THQ
最佳答案
我可以提供第三种选择。在租户和主数据库中都有用户。然后,您可以创建过程以在用户更改租户数据库时更新主数据库(反之亦然)。
此外,我不知道 Laravel 中的模型,但 MySQL 没有跨数据库 JOIN 的问题。
关于php - Multi-Tenancy SaaS 应用程序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39233041/