条令2.0 |创建数据库|外键是否唯一


Doctrine 2.0 | Create Database | Are Foreign Keys Unique

  1. 我使用的是Doctrine 2.0和MySQL的最新版本以及PHP 5.3.5
  2. 我目前使用PHP映射来创建我的数据库

我有一个模型(Event(,它与另一个模型有一种one2one的关系(EventInvitations(——这可能是one2many,但让我们继续往下看。

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

当我运行:"doctrine.php orm:schema-tool:update-force"doctrine将成功创建我的Unique索引,但它似乎也创建了另一个Uniq索引,该索引的关键字名称类似于Uniq_AHJHAUSH7J,但在EventId字段上。

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

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

您可能希望多个EventInvitation与一个Event关联,在这种情况下,关系应该是ManyToOne(从EventInvitate的角度来看(;因此,您将能够在没有唯一索引的情况下获得事件的外键。