いくつかのデータを含む次のテーブルを取得しました。
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 人の息子を持っており、それらに関連するすべての製品をテーブルから削除します。Products2Categories
dad
grandson and grandson2
Products2Categories
私は過去 2 日間、それを行うことができるコードを考えようとしてきましたが、アイデアを思いつくことができませんでした。ほとんど迷っています。
前もって感謝します!
注:追加情報が必要な場合は、お気軽にお問い合わせください。