php - Multi-Tenancy SaaS 应用程序的最佳方法

标签 php laravel database-schema multi-tenant saas

我正在尝试构建一个 Multi-Tenancy SaaS 应用程序,我知道有多种方法,但我选择了我认为最适合的多数据库方法。

所以我为每个租户创建一个数据库,并在主数据库中存储一个租户表 并根据子域将用户连接到各自的数据库。

现在我的问题是在主数据库中存储用户的位置?或租户数据库,将用户存储在主数据库中将难以在其他数据库中获取用户相关模型,但将其存储在租户数据库中将难以对所有用户进行身份验证 ...

最好的场景是什么?

  1. 验证,获取 jwt token 。
  2. 随每个请求发送 token 。
  3. 在每个请求上验证 token 、检查子域、连接到相应的租户数据库、执行请求。

这是一个好方法吗?我应该如何处理用户表问题? THQ

最佳答案

我可以提供第三种选择。在租户和主数据库中都有用户。然后,您可以创建过程以在用户更改租户数据库时更新主数据库(反之亦然)。

此外,我不知道 Laravel 中的模型,但 MySQL 没有跨数据库 JOIN 的问题。

关于php - Multi-Tenancy SaaS 应用程序的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39233041/

相关文章:

php - 在 Laravel 之外解密加密值

php - 没有 'Access-Control-Allow-Origin' header - Laravel

sql-server - SQLServer 和 Hibernate 基于架构的 Multi-Tenancy

sql - 如何更改 MSSQL 中所有表、 View 和存储过程的架构

php - 升级后 Codeigniter 查询生成器对象错误

php - 显示所有字体文件字符

php - 如何在 PHP 中使用 shell_script 创建数据库后创建表?

php - 如何使用explode()将2个单词分成2个不同的字符串

performance - ORM 查询性能与 RDBMS 性能

mysql - 显示数据库表名称及其列号