В настоящее время я разрабатываю веб-сайт, используя symfony (1.2) с Doctrine в качестве ORM.
У меня есть класс Dinner, класс Criteria и класс Mark.
- Знак связан с ужином и
Критерии, и имеет частные атрибуты,
например DateOfMark, MarkValue и т. д.
- Ужин и критерии могут иметь много
Знаки (или нет).
Поскольку я использую 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
Проблема в том, что SQL, сгенерированный Doctrine, добавляет FOREIGN KEY CONSTRAINT
на Mark.dinner_id
к Dinner.id
(что правильно) И добавляет FOREIGN KEY CONSTRAINT
на Dinner.id
к Mark.dinner_id
(что на самом деле неверно, поскольку на обеде может быть много знаков).
Вопрос
Я что-то пропустил? Я делаю такое отношение между классами неправильно?
Спасибо.