【发布时间】:2009-09-28 17:02:22
【问题描述】:
我在我的 Symfony(使用原则)项目中定义了 Orders 和 Upgrades 之间的多对多关系(Order 可以与零个或多个 Upgrades 关联,Upgrade可以应用于零个或多个Orders)。
# schema.yml
Order:
columns:
order_id: {...}
relations:
Upgrades:
class: Upgrade
local: order_id
foreign: upgrade_id
refClass: OrderUpgrade
Upgrade:
columns:
upgrade_id: {...}
relations:
Orders:
class: Order
local: upgrade_id
foreign: order_id
refClass: OrderUpgrade
OrderUpgrade:
columns:
order_id: {...}
upgrade_id: {...}
我想设置删除级联行为,这样如果我删除Order 或Upgrade,所有相关的OrderUpgrades 都会被删除。我在哪里放onDelete: CASCADE?通常我会把它放在关系部分的末尾,但这似乎意味着在这种情况下删除Orders 会级联删除Upgrades。如果我将onDelete: CASCADE 放在 schema.yml 的上述关系部分中,Symfony + Doctrine 是否足够聪明,可以知道我想要什么?
【问题讨论】:
标签: database-design orm symfony1 doctrine data-modeling