考虑以下方案:
我们需要确保,如果关联被删除,那么属于该关联的所有狗也应该被删除。
然而,在执行此操作时,保持Association和Dog表之间实际存在的关系是有道理的,因为每个关联可以有几个Dogs,但是,一个Dog只属于一个Association。所以我相信外键配置是正确的。
我相信我应该在某处应用Cascade,但我没有看到。 :(
请咨询
答案 0 :(得分:5)
选择“Dog”作为目标表,然后选择“Foreign Keys”选项卡,您应该在那里选择“association_id”字段。一旦你发现只需检查“外键选项”部分中显示的“打开删除”的弹出值,它就会显示“CASCADE”(类似于上面显示的屏幕截图 - 如果它没有显示'CASCADE',只需选择它)。
答案 1 :(得分:2)
在Dog和association之间添加关系:在Dog属性上为association_id列添加一个新的外键,引用association.id。选择删除CASCADE
。
您也可以在查询窗口中执行这些步骤(就个人而言,只有在需要打印数据库结构时才使用图形工具)。
ALTER TABLE Dog ADD CONSTRAINT `FK_byAssociationIdDog`
FOREIGN KEY(association_id)
REFERENCES Association(id) ON UPDATE CASCADE ON DELETE CASCADE;