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

dphi5xsq  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(340)

我开发了一个软件来计划和管理学校的会议。到目前为止,一切都很好,但现在我需要为多所学校提供我的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
ui服务器:77.77.77.10
我怎么可能意识到呢?理想情况下,如果新学校想使用它,它将自动扩展,但如果部署需要手动工作,那么在开始时就可以了。
我希望你能理解我的需要,并能帮助我。
谨致问候,Maven

ql3eal8s

ql3eal8s1#

您可以遵循此方法并根据您的需求进行改进。
主数据库
创建 Schools table。在这种情况下,为每个学校保留一个记录,其中包含子域(唯一标识符)和学校数据库连接信息。
学校dbs
这将包含应用程序的所有表。每所学校将有一个单独的数据库。
只保留主数据库凭据 config/database.php .
使用serviceprovider通过使用子域查询master db/schools表,将活动school db设置为默认数据库连接。

相关问题