- 我使用的是 Doctrine 2.0 和最新版本的 MySQL 以及 PHP 5.3.5
- 我目前使用 PHP 映射来创建数据库。
我有一个模型(Event),它与另一个模型(EventInvitations)具有 one2one 关系 - 这可能应该是 one2many,但让我们继续。
我当前的 EventInvitations 映射在 eventid 和 userid 上有一个 UniqueConstraint。
我的 EventInivitation 也有一个 OneToOne Join on Event,这是一个外键
当我运行:“doctrine.php orm:schema-tool:update --force” Doctrine 将成功创建我的唯一索引,但它似乎也创建了另一个 Uniq 索引,该索引具有像 Uniq_AHJHAUSH7J 这样的键名称,但在 EventId 字段上。
问题是我不希望外键创建唯一字段。有没有办法告诉 Doctrine 不要为外键创建唯一索引?
最佳答案
一对一关系意味着唯一性。这意味着对于给定的 EventInvitation,有一个 Event,反之亦然。
您可能希望多个EventInvitation与一个Event关联,在这种情况下,关系应该是ManyToOne(从EventInvitation的角度来看);因此,您将能够拥有事件的外键,而无需唯一索引。
关于php - 教义2.0 |创建数据库 |外键是否唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6586460/