В настоящее время я разрабатываю веб-сайт, используя 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
(что действительно неверно, поскольку на обеде может быть много Метки).
Вопрос
Я что-то пропустил ? Я неправильно использую такие отношения между классами?
Спасибо вам.