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引用外國等... –