以xizishop為例,如下效果圖:
上圖紅色方框所示為一級類別。
上圖所示為二級類別、**類別和篩選條件類別,以及篩選條件的值。
資料庫設計步驟如下:
【步驟一】對於一級類別、二級類別,**類別,我統一把它們放在一張表裡面,名曰:欄目表(t_columns),各級的父子關係通過表中的fathercol這一列去進行關聯。如下圖:
【步驟二】建立好儲存一級類別、二級類別和**類別的表之後,再開始考慮「篩選條件表」(表名稱:t_filtercategory)和「篩選條件值表」(表名稱:t_filterattributes) 的設計。
然後再分析「篩選條件表」和「篩選條件值表」之間的對應關係。
同乙個篩選條件可以有多個篩選條件值。例如:對於手機「品牌」來說,它下面可以有多個篩選條件值:三星、摩托羅拉、蘋果.....
同乙個篩選條件值又可以被多個篩選條件所擁有。
觀察上圖中的紅色方框內容,我發現手機「品牌」裡有「三星」,筆記本「品牌」裡也有「三星」,換句話說,「三星」既屬於手機「品牌」又屬於電腦「品牌」,這樣一來,「三星」就可以對應多個「品牌」了,因此得出結論同乙個篩選條件值有可能被多個篩選條件所擁有。
綜合上述1和2,我得出「篩選條件表」和「篩選條件值表」之間是多對多的關係。於是,按照資料庫設計規範,需要為這兩張表新增乙個中間表,名曰:(rf_filtercategory_tfilterattributes)
然後建立它們的外來鍵關聯:
然後再分析「篩選條件表」和「欄目表」之間的對應關係:
「欄目表」屬於「篩選條件表」的父表,即只有「欄目表」中的**類別才和「篩選條件表」直接關聯,如下圖:
分析它們的關係:
1:乙個**類別可以有多個篩選條件。
2:同乙個篩選條件可以被多個**類別擁有。如下圖:
如上圖:「品牌」和「**」可以同時被**類別中的「手機」和「對講機」擁有。所以,「欄目表」和「篩選條件表」之間也是多對多的關係。於是又需要建乙個 中間表,名曰:(rf_columns_filtercategory),如下圖:
然後建立外來鍵關係如下圖:
設計完這一步,整個關係圖如下:
uml圖:
到了這一步,似乎資料庫已經設計的很完美了,但是它有一處致命的硬傷!
這個硬傷在哪兒呢,答案見續篇。
秒殺商城系統 商品列表頁的設計 (十)
假設商品和秒殺商品都在一張表中,秒殺活動經常以不同的形式展開,資料庫欄位也要經常改啊,那和資料庫有關的老 是不是也要一起改,當資料庫不斷修改,後期維護也比較困難。xmlns th charset utf 8 商品詳情title head class panel panel default class...
商城系統中商品模組資料庫設計的一些思考
一般我們要做的 系統比較龐大,最最基礎的就是商品表的設計,一件商品又牽扯到商品的屬性 規格 分類,每種規格又有不同的庫存和 所以資料庫設計時需要均衡考慮,乙個是方便拓展,另乙個是方便查詢。看過網上一些的設計,規格設計這塊分為橫向和縱向之說,橫向好像是說每種規格占用乙個字段,這樣規格很多之後資料庫欄位...
基於電商中臺架構 商品系統設計 一
二 概念定義 三 技術設計 四 總結 為什麼採用中臺架構前幾篇已經說明了,這裡就介紹一下基礎層和平台層的功能。商品管理 商品的基本操作 商品收藏 管理使用者收藏的商品 商品快照 儲存商品編輯的每乙個快照版本 活動打標 根據不同的活動對映到商品屬性上不同標記 銷量管理 商品的銷量統計 以及排序操作 瀏...