規格引數就是對商品引數的描述。以擷取的京東商品描述為例,作為這篇文章分析的物件。
(sony電視)商品的規格引數的字段是動態變化的
,我們應該怎麼在程式中表示這個結構,以及在資料庫如何儲存。
方案一:
首先我們應該清楚不能用固定的資料結構去表示規格引數,例如普通的類(類裡的每個屬性都代表乙個引數名)。
因為商品很多,每個商品的引數都不統一,不可能對每乙個商品都去造乙個類,開銷太大也不現實。
方案二:
使用模板的思想實現
即針對每一種商品的規格引數設計乙個模板,然後商品去套用對應型別的模板,然後按照模板中的引數字段填寫相應的內容,例項化這個規格引數模板,最後生成商品規格引數意思就是把規格引數分為了兩塊來做,第一塊要設計每類商品的規格引數模板,這樣就解決了每類商品規格引數不同的問題。第二塊就是要例項化引數模板,生成最終商品的規格引數
知道了思想,那該怎麼具體去實現,以下又引出了兩個需要解決的問題
1、 模板如何儲存?
a)儲存到資料庫
b)字段不能固定
i. map
ii. json
2、 儲存的json結構
a)模板結構
b)最終資料結構
需要有2張表:
1、 模板表,需要和商品類目關聯
2、 規格引數資料表,需要和商品關聯
(↓模板表)
(↓規格引數資料表)
在資料庫中規格引數模板和具體的規格引數資料都是以json格式的字串儲存,而不是分欄位儲存。使得本來需要設計很多張表來儲存簡化為2張表。
1.新增模板:前台只要按指定json格式構建規格引數模板,然後生成json文字傳給後台,然後儲存伺服器。
介面:
2.填寫具體的規格引數:
前台如果要給某件商品新增規格引數,只要解析對應模板的json格式資料,然後生成表單,新增每個欄位的資料,再按之前所示的具體資料結構json格式生成json提交後台,
然後儲存資料庫
介面:
json:
商品規格管理的實現 淘淘商城(十二)
建立模板 根據規格模板生成表單 儲存商品規格引數 展示規格引數 儲存規格模板 響應引數 taotaoresult。service層 service public class itemparamserviceimpl implements itemparamservice return taotaor...
淘淘商城實現商品規格模板列表展示的實現
在做淘淘 專案的時候,想實現展示商品規格模板列表的展示功能,因為是單錶查詢 資料庫中有專門的tb item param這個表 所以dao層可以使用逆向工程的 service層 1 寫介面中的方法。得到商品規格模板列表 eudategridresult getitemparamlist int pag...
淘淘商城規格引數列表顯示
淘淘 規格引數列表顯示 select ip.id,ip.item cat id,ic.name as item cat name,ip.param data,ip.created,ip.updated from tb item param as ip left join tb item cat as...