我开发了一个软件来计划和管理学校的会议。到目前为止,一切都很好,但现在我需要为多所学校提供我的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
1条答案
按热度按时间ql3eal8s1#
您可以遵循此方法并根据您的需求进行改进。
主数据库
创建
Schools
table。在这种情况下,为每个学校保留一个记录,其中包含子域(唯一标识符)和学校数据库连接信息。学校dbs
这将包含应用程序的所有表。每所学校将有一个单独的数据库。
只保留主数据库凭据
config/database.php
.使用serviceprovider通过使用子域查询master db/schools表,将活动school db设置为默认数据库连接。