我开发了一款软件来计划和管理学校 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
我怎么可能意识到这一点?理想情况下,如果新学校想要使用它,它将自动扩展,但如果部署需要手动工作,那么一开始就可以。
我希望您了解我的需求并能帮助我。
最诚挚的问候,马文
最佳答案
您可以遵循此方法并根据您的要求进行改进。
- 主数据库
Create
Schools
table. In this, for each school, keep a record with the subdomain (unique identifier) and School DB connection information. - 学校数据库
This would contain all tables for your app. Each school will have a separate DB.
- 仅在
config/database.php
中保留Master DB 凭据。 - 使用服务提供商,通过使用查询主数据库/学校表,将事件学校数据库设置为默认数据库连接子域。
关于php - 如何使用 Laravel 为不同的客户使用不同的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618437/