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(ペン) の製品がカテゴリ 1、2、3 に関連付けられている場合と同様です。

それがデータベースの構築方法です。 : カテゴリごとに 3 つのレベルしか存在grandson and grandson2できません。つまり、親になることはできません。

今、私が苦労しているのはdelete機能性です。

リストからカテゴリを選択したいのですが、カテゴリは祖父のカテゴリ、父のカテゴリ、または孫のカテゴリにすることができます。削除ボタンをクリックしたら、次のものを削除したいと思います。

  • カテゴリに関連する製品
  • すべての「息子」カテゴリ
  • 「息子」カテゴリに含まれるすべての製品
  • テーブルから prodcut_id と category_id を削除しますProducts2Categories

例えば:

granny関連するすべての製品を削除したいカテゴリを削除した場合、「息子」カテゴリとそれに関連するすべての製品を削除し、テーブルからdadリンクを解除したいと思います。 "息子" 私は彼の息子を削除したいと思います。彼は実際には 2 人の息子を持っており、それらに関連するすべての製品をテーブルから削除します。Products2Categoriesdadgrandson and grandson2Products2Categories

私は過去 2 日間、それを行うことができるコードを考えようとしてきましたが、アイデアを思いつくことができませんでした。ほとんど迷っています。

前もって感謝します!

注:追加情報が必要な場合は、お気軽にお問い合わせください。

4

0 に答える 0