2

通过考虑以下方案:

表关系

我们需要确保,如果一个关联被删除,属于该关联的所有狗也应该被删除。

但是,这样做的同时保留关联表和 Dog 表之间实际存在的关系是有意义的,因为每个关联可以有多个 Dog,但是,一个 Dog 只属于一个 Association。所以我相信外键配置是正确的。

我相信我应该在某个地方应用 Cascade,但我没有看到在哪里。:(

请指教

4

2 回答 2

5

选择“Dog”作为目标表,然后选择“Foreign Keys”选项卡,您应该有一个外键用于选择“association_id”字段。一旦您发现只需检查“删除时”的“外键选项”部分中显示的弹出值,它应该显示“级联”(类似于上面的屏幕截图显示的内容 - 如果它没有显示“级联”,只需选择它)。

于 2011-05-01T15:14:44.717 回答
2

要添加 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;
于 2011-05-01T15:20:33.947 回答