我正在一个分为多个模块的项目中工作。每个模块在mysql中都有自己独立的数据库,但现在,模块需要在它们之间获取数据。例如,我们将开发一个新的“admin”模块,其他所有模块都需要访问“admin”数据库中的数据。我知道我可以像
那样进行查询select * from admin.table
从其他数据库获取数据,但每个模块(以及新的“admin”模块)都是在CakePHP中创建的。我认为一种可能的解决方案是使用类似别名(如Oracle或SQL Server中的那些),但MySQL不支持它。有人有更好的主意吗?感谢
答案 0 :(得分:0)
如何使用视图:
create view admin_table as select * from admin.table
然后,您只需将$tableName
设置为admin_table
即可。
答案 1 :(得分:0)
我可能错了,但我认为查询是基于
从database.owner.table中选择* ...隐含的所有者将是“dbo”(数据库所有者)。所以,你可能会做到以下几点......
从database1.table1 a1,database2.table2 b1中选择a1。,b1。,其中a1.fld1 = b1.fld1 ...
答案 2 :(得分:0)
我有一种感觉CakePHP可以处理跨数据库关系。尝试将每个模型的$useDbConfig设置为相应数据库的连接。 CakePHP应生成多个查询(每个数据库连接至少一个)并将结果连接在一起。这种方法应该适用于简单的关系,但可能没有完全支持HABTM之类的关系。