假设我有以下(样本结构和数据):
Table category
======================
id (PK) name
-----------------
45 computers
50 sports
Table category_tag
======================
id (PK) name cat_id (FK)
---------------------------------
100 keyboard 45
120 football 50
Table listing_category
======================
list_id (PK) cat_id (PK/FK)
------------------------------
10001 45
10001 50
Table listing_tag
======================
list_id (PK) cat_tag_id (PK/FK)
----------------------------------
10001 100
10001 120
需要发生的是,在上面的示例中,当删除 table 中的一行时listing_category
,它还需要删除 table 中的相关条目listing_tag
。
现在我知道我可以将表 'category' 和表 'category_tag' 组合起来,但我更喜欢将它们分开,因为category_tag
表包含额外的字段和数据。
另一种选择是向cat_id
表中添加一列listing_tag
- 但我想尽可能避免重复数据。
是否可以使用上表配置创建“级联删除”外键约束?如果没有,我应该如何更改表格以使其正常工作?