mysql 商品規格表 商品規格分析

2021-10-18 10:08:20 字數 1759 閱讀 2774

產品表每次更新商品都會變動的,id不能用,可是購物車還是用了,這就導致每次儲存商品,哪怕什麼都沒有改動,也會導致使用者的購物車失效。

其實可以考慮不是每次更新商品就除所有的sku,畢竟有時什麼都沒修改呢,只改乙個**呢,或者增加乙個sku呢,其實這個問題做細一點有好的處理方式的。

比如商品增加乙個版本號字段,sku也增加乙個版本字段,如果sku規格值變動了那麼刪除,如果發現規格值還在,只是**或其它的改變了,那麼則只需要改變版本號就可以了,但其實這裡面的細節很多,考慮得比較麻煩,還是乾脆不要用sku的id了,如果能不用sku的id,那就全部都不要用,購物車裡面也只記錄商品的id和規格字串就可以了,根據規格字串查詢sku,如果找不到那就是沒有。

規格不是屬於模型,而是模型有個字段可以包含多個規格。多個規格值使用json編碼儲存。

屬性是屬於模型的。多個屬性值使用逗號分隔。

商品展示時規格怎麼獲取,跟後台可不一樣,後台是可以看到模型下面的所有規格,但不一地你給選用該規格,而前台是要展現所有sku,請注意這個區別。

iwebshop是將商品的所有規格組(sku)都放入了goods表,顯示時使用了這兒的資料。而tpshop是從sku表中獲取的。

classes/goods_class.php 119 line

//是否存在貨品

$goodsupdatedata['spec_array'] = '';

if(isset($postdata['_spec_array']))

//生成goods中的spec_array欄位資料

$goods_spec_array = array();

foreach($postdata['_spec_array'] as $key => $val)

foreach($val as $v)

$tempspec = json::decode($v);

if(!isset($goods_spec_array[$tempspec['id']]))

$goods_spec_array[$tempspec['id']] = array('id' => $tempspec['id'],'name' => $tempspec['name'],'type' => $tempspec['type'],'value' => array());

$goods_spec_array[$tempspec['id']]['value'] = $tempspec['value'];

foreach($goods_spec_array as $key => $val)

$val['value'] = array_unique($val['value']);

$goods_spec_array[$key]['value'] = join(',',$val['value']);

$goodsupdatedata['spec_array'] = json::encode($goods_spec_array);

products.html 模板

### 擴充套件討論:標類與非標

當商品比較容易標準化,規範化時使用型別來決定規格這種形式比較好(根據商品型別定義規格模型),但是有一些場景這樣就不太靈活了,比如當商品很難標準化,規範化時,比如外賣的餐品,不是每乙個餐品都有規格,都有辣度規格,大份小份等規格,所以此時應該尋找另外一種解決方案了,比如使用自定義的規格,這樣就靈活很多了,這裡就有個很好的例項:[這是商品不依賴型別,自定義規格的完美解決方案!]( ,當然如果情況複雜特殊,使用兩種方式結合也是我們願意看到的,不過設計起來可能比較複雜,以後有實際案例再討論。

update:2017-3-16 11:18:03

根據商品規格篩選商品

思路 現將規格陣列拿到,再讓商品陣列的每個規格裡的每一項規格比較,如果規格陣列和某乙個商品的規格全部匹配,則渠道改商品的id 下邊上一些主要 太累了,還未整理,主要難點在於,怎麼判斷規格陣列和商品規格匹配,我讓每乙個商品去和規格陣列比較,如果每一項規格項裡的規格值都和規格陣列匹配,則給乙個空陣列裡新...

商品表(spu) 規格表(sku)設計

這裡拿iphone6s舉例,它身上有很多的屬性和值,比如 spu 指的是商品 iphone6s spu屬性就是不會影響到庫存和 的屬性,又叫關鍵屬性,與商品是一對一的關係,比如 sku指的是具體規格單品 玫瑰金 16g sku屬性就是會影響到庫存和 的屬性,又叫銷售屬性,與商品是多對一的關係,比如 ...

商品表(spu) 規格表(sku)設計

這裡拿iphone6s舉例,它身上有很多的屬性和值,比如 spu 指的是商品 iphone6s spu屬性就是不會影響到庫存和 的屬性,又叫關鍵屬性,與商品是一對一的關係,比如 sku指的是具體規格單品 玫瑰金 16g sku屬性就是會影響到庫存和 的屬性,又叫銷售屬性,與商品是多對一的關係,比如 ...