问题描述
|
通过考虑以下方案:
我们需要确保,如果关联被删除,则属于该关联的所有狗也应被删除。
但是,这样做时,必须保留关联和Dog表之间实际存在的关系,因为每个关联可以有多个Dog,但是,一个Dog仅属于一个Association。因此,我相信外键配置是正确的。
我相信我应该在某个地方使用Cascade,但是我看不到哪里。 :(
请指教
解决方法
选择\'Dog \'作为目标表,然后选择\'Foreign Keys \'标签,您应该在其中为\'association_id \'字段选择一个外键。找到后,只需检查\“外键选项\”部分中显示的\“删除时\”的弹出值,它应显示\'CASCADE \'(类似于上面的屏幕截图显示-如果不是\'只需显示\'CASCADE \'即可)。
,在Dog和association之间添加关系:在Dog属性上,为association_id列添加一个新的外键,该键引用association.id。选择On Delete
CASCADE
。
您也可以在查询窗口中执行这些步骤(个人而言,仅在需要打印数据库结构时才使用图形工具)。
ALTER TABLE Dog ADD CONSTRAINT `FK_byAssociationIdDog`
FOREIGN KEY(association_id)
REFERENCES Association(id) ON UPDATE CASCADE ON DELETE CASCADE;