我有一个产品、类别和“productsInCategories”的数据库,看起来像:
用户
id█ name ▌
▀▀█▀▀▀▀▀▀▀▀▌
1 █ john ▌
69█ jane ▌
产品
id█ name █ cost █description▌
▀▀█▀▀▀▀▀▀▀▀█▀▀▀▀▀▀█▀▀▀▀▀▀▀▀▀▀▀▌
21█snickers█ 23 █ foo ▌
34█ mars █ 20 █ bar ▌
37█ daim █ 21 █ oofrab ▌
79█ banana █ 8 █ foobar ▌
80█ apple █ 10 █ barfoo ▌
类别
id█ userId █ name ▌
▀▀█▀▀▀▀▀▀▀▀▀█▀▀▀▀▀▀▀▀▀▌
10█ 69 █chocolate▌
55█ 69 █favorites▌
20█ 1 █ fruit ▌
产品分类
categoryId█productId▌
▀▀▀▀▀▀▀▀▀▀█▀▀▀▀▀▀▀▀▀▌
10 █ 21 ▌
10 █ 34 ▌
20 █ 79 ▌
20 █ 80 ▌
55 █ 21 ▌
55 █ 37 ▌
这产生了一些可以被视为:
Users
john
fruit
banana
apple
jane
chocolate
snickers
mars
daim
favorites
snickers
daim
当我想获取某个类别的所有产品时,我会执行以下操作:
SELECT *
FROM Products
INNER JOIN ProductsInCategories
ON Products.Id=ProductsInCategories.product
WHERE category=@0
,@0=categoryId
这一切都很好,插入或删除产品非常简单。但是我现在有一个问题,我无法解决问题。
即删除类别。我将如何继续这样做?我已经为此工作了几个小时,但似乎无法使其正常工作。如果用户删除一个类别,我希望仅存在于该类别中的所有产品连同关联的 productInCategories 记录一起被删除。如果说用户“简”删除了她的类别“巧克力”,那么我想删除产品“火星”而不是“士力架”或“火星”,因为它们也存在于“收藏夹”类别中