php - 如何使用 Laravel 为不同的客户使用不同的数据库?

标签 php mysql laravel routes scaling

我开发了一款软件来计划和管理学校 session 。到目前为止,一切都工作正常,但现在出于安全原因,我需要将 Laravel 应用程序提供给多所学校,而不使用相同的数据库。

现在我想根据客户端来自的 URL 使用不同的 MySQL 连接。

例如:

  • school1.example.org 使用 DB1,
  • school2.example.org 使用 DB2 等。

我的后端应该只位于一台具有外部数据库服务器的服务器上。 所以也许是这样的:

  • API 服务器:99.99.99.10
  • DB1 服务器:88.88.88.10
  • DB2 服务器:88.88.88.20
  • 用户界面服务器:77.77.77.10

我怎么可能意识到这一点?理想情况下,如果新学校想要使用它,它将自动扩展,但如果部署需要手动工作,那么一开始就可以。

我希望您了解我的需求并能帮助我。

最诚挚的问候,马文

最佳答案

您可以遵循此方法并根据您的要求进行改进。

  1. 主数据库

    Create Schools table. In this, for each school, keep a record with the subdomain (unique identifier) and School DB connection information.

  2. 学校数据库

    This would contain all tables for your app. Each school will have a separate DB.

  3. 仅在 config/database.php 中保留Master DB 凭据。
  4. 使用服务提供商,通过使用查询主数据库/学校表,将事件学校数据库设置为默认数据库连接子域

关于php - 如何使用 Laravel 为不同的客户使用不同的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618437/

相关文章:

php - Laravel 名称间距问题

php - 如何使用 Constructor 主题修复 Wordpress 中的 float 侧边栏?

php - 将 MySQL COUNT() 的 BIGINT 结果转换为 INT

php - 是否有 PHP 函数或方法来对数据进行校验和?

MySql Group By 同一张表?

mysql - 简单存储DB的设计

php - 作为数组的一部分从 PHPUnit Test 返回参数

php - 内连接或foreach从数据库获取最终数据?

laravel - 如何在 Blade laravel 中获取旧的输入数组

php - 如何在 laravel eloquent 中为左连接表添加别名