轉 MySQL 無限級分類表設計與查詢

2021-10-07 03:16:20 字數 1247 閱讀 6616

舉個簡單的例子,我們設計購物**之類的**的時候一般商品都會有一級分類二級分類甚至**分類或者再細分,如果按照傳統思維我們可能會為每個級別的類別設定一張分類表然後再用外來鍵去關聯,雖然這樣保證了沒有冗餘,但是我們完全沒有必要設定這麼多表,更何況商品類可以是無限細分的,我們不能因此而建立無數張表,最最重要的是這樣多表連線查詢時候會造成效率低下的問題,不利於效能的提公升。

這個時候我們如何只設定一張類別表而且保證沒有冗餘呢?接下來揭開無限極分類表設計的面紗。

至少包含三個字段,自身id,自身名,父級id.

秘密**:做自身連線起別名,然後利用左右連線來查詢

自身連線為何物?同乙個資料表對自身進行連線。注意一定要起別名!!

select s.type_id,s.type_name,p.type_name 

from tdb_goods_types as s left

join tdb_goods_types as p

on s.parent_id=p.type_id;

這樣我們便高效的查到了任一子類id及其關聯的父類id.

這樣我們可以高效查到父類下所有的子類名稱。

mysql無限級分類表設計

create table tdb goods types type id smallint unsigned primary key auto increment,type name varchar 20 not null,parent id smallint unsigned not null d...

無限級分類表設計(三十七)

實際上我們在開發過程中,就拿商品類別來說,它還可以有更多的延伸,我們先來舉乙個簡單的例子,比如圖書,他的下面還可以分 文學等,在 下面還可以分為言情 科幻 等,還可以再往下一級一級繼續分,那麼這種分類就屬於無限極分類,那麼無限極分類錶該如何去設計,理論上說我們可以設計很多張表,但是隨著分類的逐步增多...

MySQL基礎入門學習 9 無限級分類表設計

比如 圖書 文學.四大名著 戲曲.理論上可以設計很多張表 但是隨著分類逐步增多,這些表的數目不可能無限擴充套件 所以對於無限級分類表一般我們採用如下形式 通過自身的連線來實現的 這個例子中我們至少設計三個字段 分類的id 分類的名稱 父類的id.插入記錄 insert tdb goods types...