Doctrine 2是否需要定义外键?

时间:2012-08-28 09:52:43

标签: php doctrine-orm

我有一个关系数据库,但是没有定义任何外键,并且许多表都不是InnoDB,所以无论如何都不能支持外键。

我想在这个数据库上开始尝试使用Doctrine,但是文档中有很多外键引用,所以我不确定这是否可行。

我担心潜入并将表存储引擎更改为InnoDB并定义大量外键,因为如果我不需要,我不想影响性能。

  • Doctrine是否需要定义外键才能管理实体之间的关联?
  • 如果不是必需但是可选的话,如果我没有定义外键,我会牺牲什么样的学说功能?

2 个答案:

答案 0 :(得分:2)

没有理由你切换到InnoDB for Doctrine。

  1. 没有
  2. 我发现用于更新和生成数据库模式的Doctrine CLI工具通常会尝试使用外键生成SQL。您可以手动设置数据库,或修改它生成的代码,以避免这种情况。
  3. 所以,没有,这不是问题。

答案 1 :(得分:0)

如果为实体定义了一些关联映射,它可以通过doctrine自动转换为外键

http://docs.doctrine-project.org/en/latest/reference/association-mapping.html

我想在你的数据库中使用这些外键,你必须使用doctrine CLI来创建你的模式

有关使用doctrine cli的更多信息: http://docs.doctrine-project.org/en/latest/reference/tools.html