2

私は現在、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 CONSTRAINTonを追加するMark.dinner_idことDinner.id(これは正しい)とonを追加することです ( Dinnerには多くのマークがある可能性があるため、これは実際には正しくありません)。FOREIGN KEY CONSTRAINTDinner.idMark.dinner_id

質問

私は何か見落としてますか ?この種のクラス間の関係は間違っていますか?

ありがとうございます。

4

1 に答える 1