在我們做網站的時候,不管是新聞系統還是產品系統,或者是博客,論壇等等,都少不了與分類打交道。有時候我們經常說分幾級分類,一般分2-3級,具體視情況而定,但是這樣的做法非常死板,不夠靈活,因為不是任何類別下的分類都有子類,孫類……,為了能夠使分類靈活,我們經常采用的是無限級分類。
無限級分類主要思路有兩種:一是使用遞歸;二就是非遞歸,我比較喜歡這種,畢竟效率是關鍵。
表結構設計:
首先建立一個分類表Category:
設計如下:
--ParentID 父節點的ID
--CategoryPath 節點路徑
--CategoryName 類別名稱
--CategoryLevel 類別級別(主要為了操作方便才設置此字段)
--CategoryDescn 這個是類別描述,沒啥好說的了,主要做搜索優化的時候用到,填充mata關鍵字
數據顯示如下(僅僅是個例子,現實中可能不這麼分):
水果--包括蘋果,橘子;
蘋果又分為紅富士和喬納金兩個品種;
喬納金又分為山東和北京的喬納金;
山東喬納金又分為濟南喬納金……
[圖2]
產品表Product:
--CategoryID沒啥好說的,主要是作為Category表的外鍵,注意有Categorypath這個字段的用意。