У меня есть отношение «многие ко многим», определенное в моем проекте 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
. Достаточно ли умна Symfony + Doctrine, чтобы понять, чего я хочу, если я поставлю onDelete: CASCADE
в приведенные выше разделы отношений schema.yml?