【发布时间】:2009-10-21 20:00:49
【问题描述】:
我目前正在设计一个网站,使用 symfony (1.2) 和 Doctrine 作为 ORM。
我有一个 Dinner 类、一个 Criteria 类和一个 Mark 类。
- 标记与晚餐和 标准,并具有私有属性, 如 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,它在Mark.dinner_id上添加了一个FOREIGN KEY CONSTRAINT到Dinner.id(这是正确的)AND它在Dinner.id上添加了一个FOREIGN KEY CONSTRAINT到Mark.dinner_id(确实不正确,因为晚餐可能有很多标记)。
问题
我错过了什么吗?我做错了类之间的这种关系吗?
谢谢。
【问题讨论】:
标签: model symfony1 doctrine data-modeling orm