Doctrine 2.0 |创建数据库|外键是否独特

时间:2011-07-05 17:23:03

标签: php mysql foreign-keys doctrine-orm

  1. 我正在使用Doctrine 2.0和最新版本的MySQL以及PHP 5.3.5
  2. 我目前使用PHP映射来创建我的数据库。
  3. 我有一个模型(Event)与另一个模型(EventInvitations)有一个二元关系 - 这可能应该是one2many但是让我们继续前进。

    我对EventInvitations的当前映射在eventid和userid上有一个UniqueConstraint 我的EventInivitation还有OneToOne Join on Event,这是一个外键

    当我运行时:“doctrine.php orm:schema-tool:update --force”Doctrine将成功创建我的唯一索引,但它似乎也创建了另一个Uniq索引,其键名如Uniq_AHJHAUSH7J但在EventId字段上。

    问题是我不希望外键创建唯一字段。有没有办法告诉Doctrine不要为外键创建Unique索引?

1 个答案:

答案 0 :(得分:3)

OneToOne关系意味着唯一性。这意味着对于给定的EventInvitation,有一个事件,反之亦然。

您可能希望将几个EventInvitations与一个事件关联,在这种情况下,关系应该是ManyToOne(从EventInvitation的角度来看);因此,您可以使用没有唯一索引的事件的外键。