我正在尝试构建一个多租户SaaS应用程序,我知道有多种方法,但我选择了一个我认为最适合的多数据库。
所以我为每个租户创建一个数据库,并在主数据库中存储一个租户表 并根据子域将用户连接到各自的数据库。
现在我的问题是在主数据库中存储用户的位置?或者租户数据库,将用户存储在主数据库中会使得很难在其他数据库中获取用户相关模型,但将其存储在租户数据库中会使得很难对所有用户进行身份验证...
还有什么是最好的情景?
这是一个好方法吗?我该怎么处理用户表问题? ThnQ
答案 0 :(得分:0)
我可以提供第三种选择。在租户和主数据库中都有用户。然后,您可以创建过程以在用户更改租户数据库时更新主数据库(反之亦然)。
另外,我不了解Laravel中的模型,但MySQL并没有跨数据库JOIN的问题。
答案 1 :(得分:0)
好的选择是将用户留在租户数据库中。当您根据子域区分租户时,可以告诉您的身份验证系统查询子域特定的数据库。
共享身份验证流程