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