商城產品分類設計思路


問題的提出:網上商城對產品進行了很多分類,不同的分類產品又有不同的屬性,比如,電腦的屬性有:CUP,內存,                   主板,硬盤等等,服裝的屬性有:布料,尺寸,顏色等等,那么產品表以及產品分類表應該如何設計才能滿足                   不同類型產品的區別呢? 解決方案:      產品分類表的設計      第一種設計思路:使用樹形結構,遞歸的形式,可以對產品進行N種     分類,只要你喜歡,樹形結構在數據庫的設計中                              經常用到,比如功能菜     單表等以下是一個簡單的產品分類表。

           

 

                          說明:上級類別ID為該表的外鍵,並關聯到本級類別ID,這樣就可以對產進行N中分類了,這種設計                                    思想十分靈活,是無限分類中最常用到的。     第二種設計思路:定義N個類別表,並對他們進行關聯,如圖:

 

         

 

                       說明:這種設計在項目中沒有人會使用它,因為產品的分類是不固定的,很難在數據庫設計的時候確定                                 類別 表的個數,很不靈活。

2、產品表的設計       第一種設計思路:直接在產品表預留N個字段,用到的時候直接插入數據,如圖

                                    可行性:會產生很多字段的冗余,並且不知道到底需要多少個字段,數據類型也不能確定,可行性比較低,但                               是這種設計也有它的優點,就是表的數量少,其他的優點我實在找不出來了,所以,在項目中這種設                               計思想也不會用到。       第二種設計思路: 在提及這種設計思路前,首先得了解數據表可以分為兩種結構,一種是橫表,也就是我們經常用到                                的表結構,另外一種是縱表,這種結構平時我們用到的表少,所以我也是今天通過請教別人才知                                有這種表結構的。      什么是縱表,它有哪些優點和缺點呢?通過兩張圖片對比來了解或許會更清楚

    橫表的結構:

              縱表的結構:

         

 

                可以看出橫表的優點是很直觀,它是根據現行業務邏輯定制,設計簡單,易操作,缺點是當業務邏輯發生拓展           時,大多情況下要更改表的結構。縱表的數據讓人看着感覺很亂,而且字段的數據出現很大的冗余,但是縱表的還          是有很多好處的,它比較靈活,當業務系統發生拓展時可以很好的適應, 知道了這些,那么我們可以進行產品表的          設計了,在這種設計思想中,需要三個表,一個為產品表,用來存產品的公共屬性,另外一個是產品分類表,最后一          個表很關鍵,用來存不同類別產品的不同屬性,采用的是縱表的結構,如圖:                            說明:通過產品拓展屬性表,用戶在頁面就可以動態的某一類產品添加屬性,添加好以后,就采用動態SQL提            取該類商品的屬性生成相應的產品類別屬性橫表,用來保存產品的屬性值,比如:用戶在界面為電腦類ID為            COMP這一類產品中添加了CUP、內存EMS這兩個屬性,那么將會動態的提取這兩個屬性,生成橫表T_COMP,            如圖:

<!--EndFragment-->

                 轉載:http://champion-netjava-163-com.iteye.com/blog/1160875


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM