3
我设计了我的数据库结构,如下所示,以支持创建多个商店和分配给这些商店的用户。我的表使用InnoDB存储引擎。外键和数据透视表上的约束,删除级联
[user]
user_id
[user_profile]
user_profile_id
user_id
[user_to_shop] PIVOT
user_id
shop_id
[shop]
shop_id
[shop_profile]
shop_profile_id
shop_id
[category_to_shop] PIVOT
category_id
shop_id
[category]
category_id
[category_description]
category_description_id
category_id
[product_to_category] PIVOT
product_id
category_id
[product_to_shop] PIVOT
product_id
shop_id
[product]
product_id
...
...
我想要实现的是删除用户(user_id)时删除所有相关记录(类别记录,商店记录,...,...)。
我已经为每个实体创建了约束条件。所以,当我删除user_id(1)时,引擎还负责删除user_profile(user_id(1))。
ALTER TABLE `user_profile`
ADD CONSTRAINT `user_profile_cs1`
FOREIGN KEY (`user_id`) REFERENCES `user`(`user_id`)
ON DELETE CASCADE
但是我应该如何处理数据透视表?我应该如何在这些表上声明约束或外键才能完成工作并保证安全?
的
顺序,从而在每种情况下,流程如下:删除(实体),然后删除(PIVOTS)?你可以使用问题的实体来展示你的流程吗? – mallix
流从什么被删除 - 说X,然后是什么提到X作为外国 - 说Y,然后是什么Y引用外国等... –