0

我得到了下表,其中包含一些数据:

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_idProducts2Categories

例如:

如果我删除了granny我想删除所有与之相关的产品的类别,那么我想删除与其相关的所有产品的“子”类别,然后将dad其从表中取消链接Products2Categories,因为dad有一个“儿子” 我想删除他的儿子,他实际上有 2 个,grandson and grandson2以及所有与他们相关的产品,当然也可以取消他们与Products2Categories表的链接。

在过去的两天里,我一直在想一个可以做到这一点的代码,但我想不出任何想法,我几乎迷路了。

提前致谢!

注意:如果您需要任何其他信息,请随时询问!

4

0 回答 0