Symfony Doctrine 数据库架构与不同数据库的关系
我在设计 Doctrine 数据库模式时遇到了这个问题。假设我有2个数据库,A和B。
我已经制作了数据库A模式,现在我需要制作数据库B模式。在数据库B中,其中一张表与数据库A的表有关系。这就是问题所在,如何将B与A关联起来?
I'm having this problem about designing Doctrine database schema. Assume I have 2 databases, A and B.
I've already make database A schema, and now I need to make database B schema. In database B, one of the tables has relation to database A's table. This is the problem, how can I relate B to A?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
@Dziamid 说对了一半。
从技术上讲,您无法将两个表连接到单独的数据库。但你可以假装任何真正的干预。
配置多个数据库连接:
为每个模型定义正确的连接
现在您可以像平常一样使用 Doctrine 模型:
唯一的限制是您不能在 DQL 查询中进行联接。
但是您可以使用 Doctrine_Collections 加载关系。
这与 Doctrine_Query 的工作方式相同。
@Dziamid is half right.
You technically cannot join two tables over to separate database. But you can fake it would any real intervention.
Configure multiple database connections:
Define the proper connection for each model
Now you can use your Doctrine models as you normally would:
The only limitation is that you CANNOT do joins in DQL queries.
But you can load relations using from Doctrine_Collections.
This works the same as the Doctrine_Query.
不同数据库中的表之间不能有关系。如果这样做,您最终会遇到外键约束错误。然而,您可以做的是保留一个裸露的relation_id字段并从另一个连接手动加载相关数据。例如:
现在您可以使用 Item 和 Store,就好像它们是相关的一样:
You can't have a relation between tables in different databases. If you do, you will end up with a foreign key constraint error. What you can do, however, is to leave a bare relation_id field and manually load related data from another connection. For example:
Now you can work with Item and Store as if they were related: