【问题标题】:Does Doctrine 2 required foreign keys to be defined?Doctrine 2 是否需要定义外键?
【发布时间】:2012-08-22 19:32:40
【问题描述】:

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

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

我很担心潜入并将表存储引擎更改为 InnoDB 并定义大量外键,因为我不想在不必要的情况下影响性能。

  • Doctrine 是否需要定义外键来管理实体之间的关联?
  • 如果不是必需的而是可选的,如果我没有定义外键,我会牺牲 Doctrine 的哪些功能?

【问题讨论】:

    标签: php doctrine-orm


    【解决方案1】:

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

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

    所以,,这不是问题。

    【讨论】:

      【解决方案2】:

      如果你为你的实体定义了一些关联映射,它可能会自动按原则转换为外键

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

      你也想在你的数据库中使用这些外键,你必须使用学说 CLI 来创建你的架构

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

      【讨论】:

        猜你喜欢
        • 2019-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-17
        相关资源
        最近更新 更多