我得到了下表,其中包含一些数据:
Products:
+---------------------------+
|id|name |details |price|cn|
|__|_____|_________|_____|__|
| 1|pen |somethi |100 |10|
| 2|paper|something|30 |11|
+---------------------------+
Categories:
+----------------------------+
|id | name |parent_id |
|____________________________|
|1 | granny | 0 |
|2 | dad | 1 |
|3 | grandson | 2 |
|4 | grandson 2| 2 |
+----------------------------+
Products2categories:
+-------------------------------+
| id | product_id | category_id|
|_______________________________|
| 1 | 1 | 3 |
| 2 | 1 | 2 |
| 3 | 1 | 1 |
+-------------------------------+
基本上,有产品、类别和将产品与类别匹配的表格。
如您所见,每个产品都可以与多个类别相关,就像在上面的示例中,ID 为1
(pen) 的产品与类别相关:1,2,3。
这就是数据库的构建方式。
注意:每个类别只能有 3 个级别,这意味着grandson and grandson2
不能是父母。
现在,我正在努力解决的是delete
功能。
我想从列表中选择一个类别,该类别可以是祖父类别、父亲类别,甚至是孙子类别。单击删除按钮后,我想删除以下内容:
- 与该类别相关的产品
- 所有“儿子”类别
- “儿子”类别拥有的所有产品
- 从表中删除 prodcut_id 和 category_id
Products2Categories
例如:
如果我删除了granny
我想删除所有与之相关的产品的类别,那么我想删除与其相关的所有产品的“子”类别,然后将dad
其从表中取消链接Products2Categories
,因为dad
有一个“儿子” 我想删除他的儿子,他实际上有 2 个,grandson and grandson2
以及所有与他们相关的产品,当然也可以取消他们与Products2Categories
表的链接。
在过去的两天里,我一直在想一个可以做到这一点的代码,但我想不出任何想法,我几乎迷路了。
提前致谢!
注意:如果您需要任何其他信息,请随时询问!