無限級分類表設計
作用: 可以實現在一張表中完成多層級分類,而無需分多個分類表逐一創建。
附上實例圖:
理解點:
1.parent_id 的作用
2.如何查詢表
parent_id
注意: 以下一級、二級分類都是在上面一張表實現的!
1.假設我有兩個一級分類為:衣服 褲子
2. 請問他們的parent_id 應該為多少? 答: 應該為0,一級是頂級分類,最高層級,所以按0開始
3. 請問二級分類的parent_id 應該為多少?答:應該為一級分類的category_id
4. 那三級分類呢? 答: 應該為二級分類的category_id
5.以此類推。。。
如何查詢
查詢表中數據,只需要通過將分類表當作數據來源即可。
比如我想查詢衣服一級分類下有多少個二級分類數據,這里假設衣服一級分類的category_id是1,那么只需如下這樣查詢
select * from category_table where parent_id = 1;
問: 為什么 parent_id 是等於1作為條件,就能查詢出二級分類呢?
答:因為二級分類的parent_id就是一級分類的category_id,以此類推,就能查詢無限級的分類了,無論條件多么復雜,查詢的數據來源都是來自一張分類表
注意: 有時候會需要復制自身來當作數據源比如在left join中 比如: select * from category_table as a left join category_table as b on 加上條件。。。。