2011-07-05 6 views
2
  1. 私はDoctrine 2.0とMySQLの最新バージョンとPHP 5.3.5を使用しています。
  2. 私は現在、データベースを作成するためにPHPマッピングを使用しています。

私は別のモデル(EventInvitations)とone2oneの関係を持つモデル(EventInvitations)を持っています - これはおそらくone2manyであるべきですが、それから移動することができます。Doctrine 2.0 |データベースの作成|外部キーは一意です

現在のEventInvitationsのマッピングでは、eventidとuseridにUniqueConstraintがあります。私が実行したときにもOneToOneがイベントに参加してい
私EventInivitationが、これは外部キー

です:「doctrine.php ORM:スキーマツール:--forceアップデート」教義が正常にも、私のユニークなインデックスが、それを作成します。 Uniq_AHJHAUSH7Jのようなキー名がEventIdフィールドにある別のUniqインデックスを作成するようです。

問題は、外部キーで一意のフィールドを作成したくないということです。 Doctrineに外部キーのユニークインデックスを作成しないように指示する方法はありますか?

+1

これは、OneToOneマッピングの結果として作成されず、ユニークな制約を引き起こしますか?私はあなたの主キーが定義されていると仮定します。 – Orbling

答えて

3

1つの関係は一意性を意味します。それは、与えられたEventInvitationには1つのEventがあり、その逆もあることを意味します。

複数のEventInvitationsを1つのイベントに関連付ける必要があります。その場合、関係はManyToOne(EventInvitationの観点から)でなければなりません。ユニークなインデックスなしでイベントに外部キーを持たせることができます。

+0

はい、あなたは正しいです。私はその違いを理解しましたが、Doctrineがそれをすることを期待しませんでした。これは修正され、動作しています。ありがとう! – Andy

関連する問題