小编Tho*_*lin的帖子

原则:两个数据库中两个实体之间的关系

我正在使用MySQL和Doctrine 2(与Symfony 3)。

我想在两个单独的数据库中建立两个实体之间的ManyToMany关系。

我骑着Doctrine不能解决这个问题,至少不能以一种本机的方式来解决。无论如何要执行该操作,我在schema表定义中使用了属性。

假设我有这两个实体:

/**
 * @ORM\Table(schema="bdd2", name="site")
 */
class Site {}
Run Code Online (Sandbox Code Playgroud)

/**
 * @ORM\Table(name="user")
 */
class User {}
Run Code Online (Sandbox Code Playgroud)

我没有schemaUser实体上使用该属性,因为我的实体管理器配置为使用其数据库,所以它没有用。我以User这种方式建立关系:

/**
 * @ORM\ManyToMany(targetEntity="[...]")
 */
private $sites;
Run Code Online (Sandbox Code Playgroud)

非常简单。在代码方面,它有效,关系有效。

在数据库方面,这是不对的,因为user_site由doctrine生成的表只有一个(对于用户)外键:它不包含第二个数据库的外键。该字段存在,具有索引,但没有外键。

如果我自己添加外键,则每次我执行php bin/console doctrine:schema:update --dump-sql“学说”时都希望将其删除。

问题是: 如何使学说创建第二个外键? 或者,如果不可能,如何使学说忽略我自己创建的学说?

mysql doctrine symfony doctrine-orm

5
推荐指数
1
解决办法
1466
查看次数

标签 统计

doctrine ×1

doctrine-orm ×1

mysql ×1

symfony ×1