私は現在、Doctrine を ORM として symfony (1.2) を使用して、Web サイトを設計しています。
ディナー クラス、クライテリア クラス、マーク クラスがあります。
- マークはディナーと基準にリンクされ、DateOfMark、MarkValue などのプライベート属性を持ちます。
- Dinner と Criteria には、多くのマーク (またはゼロ) を含めることができます。
Doctrine を使用しているので、次のコードを使用して、このモデルを schema.yml で定義します。
Dinner:
columns:
date: { type: timestamp, notnull: true }
nb_presents: { type: integer, notnull: true }
relations:
Marks:
class: Criteria
local: dinner_id
foreign: criteria_id
refClass: Mark
Criteria:
columns:
name: { type: string(50), notnull: true }
relation:
Marks:
class: Dinner
local: criteria_id
foreign: dinner_id
refClass: Mark
Mark:
columns:
criteria_id: { type: integer, primary: true }
dinner_id: { type: integer, primary: true }
value: { type: integer, notnull: true }
relations:
Dinner:
local: dinner_id
foreign: id
Criteria:
local: criteria_id
foreign: id
問題は、Doctrine によって生成された SQL が FOREIGN KEY CONSTRAINT
onを追加するMark.dinner_id
ことDinner.id
(これは正しい)とonを追加することです ( Dinnerには多くのマークがある可能性があるため、これは実際には正しくありません)。FOREIGN KEY CONSTRAINT
Dinner.id
Mark.dinner_id
質問
私は何か見落としてますか ?この種のクラス間の関係は間違っていますか?
ありがとうございます。