如何在 CakePHP 中为一个模型动态使用多个数据库
好吧,我的第一个问题被修改了很多次,以至于我选择删除它并重新表述我的问题。我制作了一个具有不同模型名称的小型测试用例项目,以为我的问题找到合适的解决方案。
警告:不要将数据库与表混合在一起
动机:我将用户数据分离到多个数据库中,以解决法律和性能问题。
目前,我正在研究一个具有多个'的CakePHP项目,每个项目都有自己的数据库,其中包含多个表(是其中一个表)。现在,我需要先解释一些事情:User
User
cars
每个人都有自己的数据库(不是表,而是数据库),因此数据库名称如下所示。User
- [数据库] (这是应用程序的主数据库)
app
- [表]
users
- [表] (与此问题无关
permissions
)
- [表]
- [数据库] ( 1 拥有整个数据库
app_user1
User.id
)- [表] (完全由 1 拥有的表)
cars
User.id
- [表] (完全由 1 拥有的表)
- [数据库] ( 2 拥有整个数据库
app_user2
User.id
)- [表] (一张完全由2人拥有的桌子)
cars
User.id
- [表] (一张完全由2人拥有的桌子)
- 等。。。
我做了一个小图纸,可以澄清数据库/表定义及其与模型的关系:
问题!!!
我不知道要连接到哪个数据库,直到登录's和他们的数据库是动态创建的,所以我不能使用.User
User
app/Config/database.php
因此,我目前正在编写一个关于 and 类的扩展,以绕过 CakePHP 的基本数据库行为。因此,模型知道要使用哪个数据库。但我只是有一种感觉,这可以做得更容易!Model
ConnectionManager
Car
所以我想这一切都归结为一个问题:
有没有更简单的方法可以做到这一点?!
感谢任何愿意花时间和精力阅读和理解我的问题的人!