解決電商程式,不同商品入庫,及查詢功能的設計方案

2021-06-22 11:05:25 字數 1298 閱讀 3545

2012-04-05 15:14 by 少毅, 43 visits, 收藏, 編輯

最近看到乙個題目,要求提出一套商品屬性相關的資料庫設計思路,要求是商品屬性的類別(例如品牌,尺寸,顏色...)不確定,各個屬性類別的屬性值(例如品牌可能是hp,ibm...)不確定,同時需要實現針對不同屬性類別的商品檢索,例如檢索出品牌為xx,尺寸為xx,顏色為xx的商品,各條件為and操作,另外每個屬性類別的條件可能為品牌=xx or 品牌 = yy這樣的or操作,最終實現出類似**商品檢索頁面那樣的功能如下(品牌,褲長等條件為and關係,品牌中的可以選擇多個品牌,為or關係)

經過一番思考,資料庫設計如下:

spec_id —— 屬性類別id

spec_name —— 屬性類別名稱

spec_info_id —— 屬性值id

spec_id —— 屬性類別

spec_info_name —— 屬性值名稱

goods_id —— 商品id

goods_name —— 商品名稱

goods_spec_id —— 商品屬性id

goods_id —— 商品id

spec_info_id —— 商品屬性值id

建立以上4個資料庫後,spec表存放的是品牌,顏色,尺碼等的屬性名,spec_info表存放的是紅色,藍色,hp,ibm等的實際的屬性值,再通過goods_spec表將乙個商品跟它的屬性進行關聯,這樣要實現類似**的檢索功能的sql語句就可以編寫如下:

假設要檢索品牌為ibm或hp(在spec_info表中的spec_info_id 分別為1和2),顏色為紅色(在spec_info表中的spec_info_id 為6),

尺碼為15寸(在spec_info表中的spec_info_id 為5)的商品

$sql = "select * from goods_spec where spec_info_id = 5 and goods_id in (select goods_id from goods_spec where spec_info_id = 6 and goods_id in (select goods_id from goods_spec where spec_info_id = 1 or spec_info_id = 2));

ps: 這些商品的搜尋都是基於資料庫 sql 的, 可以看出使用者選擇了幾個條件,最終的 sql 就會有連幾張資料庫表的 select 查詢。 我已經用紅色粗體標出 !!

如果使用者選中了 10 個條件, 那麼一次搜尋將會 10 次 select join (或者子查詢) !

電商商品滑動

elem 操作哪乙個元素 json 表示多個屬性 attr 操作的那個元素的css中的什麼屬性 value 操作的那個元素的css中的那個屬性的目標值 cb 函式,前乙個運動執行後,這一段 才被執行 var startmove elem,json,cb else 求目標值與當前值的間距 var di...

電商商品中心類目體系

2003 年 剛上線時,商品量很少,沒有分類。後來商品量上百,開始有了對商品進行單級分類,有點類似於現在的一級行業類目。等到商品上萬的時候,商品的單級分類已經不能滿足需求,開始有了多級分類,就是一顆類目樹了。從 06 年開始引入了屬性,商家按照屬性模板填寫屬性,使用者可以按照屬性篩選商品。到了 08...

電商系統中商品屬性管理

商品與cms中的內容content一樣,是個不確定具體屬性的東西,不同型別的商品,具有不同的屬性 規格,而且規格還能影響 從這一點上來看,比cms中的內容還要複雜一些。對於程式開發者來說,需要設計比較良好的模型體系,來滿足這種需求。對比ecshop iwebshop yuncart prestash...