php - 教义2.0 |创建数据库 |外键是否唯一

标签 php mysql foreign-keys doctrine-orm

  1. 我使用的是 Doctrine 2.0 和最新版本的 MySQL 以及 PHP 5.3.5
  2. 我目前使用 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/

相关文章:

php - 我可以在自己的网站上填写外部网站上的表格吗?

MySQL 加载数据在最后一个字段上包含字符和字段终止符

php - 将 html 日期和时间转换为我的数据库日期时间列

mysql - "On Delete Cascade"如果从子表中删除一行

javascript - 关联查询中如何指定外键

php - 在 php 中安全使用多个 *.ini

php - Apache 在发送 304 时忽略 PHP header

mysql - 如何将数据插入 Tempdb 直到满足不同值的数量

MySQL:仅复制外键

php - 如何使用jquery获取编辑文本的值