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