javascript - 在商城開發中,商品詳情頁里面的屬性規格,大家傾向于用哪種json數據格式?如下
問題描述
var sys_item = {'mktprice': '13.00','price': '6.80','sys_attrprice': { '3_13': {'price': '6.80','mktprice': '13.00' }, '3_14': {'price': '7.80','mktprice': '14.00' }, '3_16': {'price': '8.80','mktprice': '15.00' }, '3_17': {'price': '9.80','mktprice': '16.00' }, '4_13': {'price': '6.80','mktprice': '13.00' }, '4_14': {'price': '7.80','mktprice': '14.00' }, '4_16': {'price': '8.80','mktprice': '15.00' }, '4_17': {'price': '9.80','mktprice': '16.00' }, '8_13': {'price': '6.80','mktprice': '13.00' }, '8_14': {'price': '7.80','mktprice': '1400' }, '8_16': {'price': '8.80','mktprice': '15.00' }, '8_17': {'price': '9.80','mktprice': '16.00' }, '9_13': {'price': '6.80','mktprice': '13.00' }, '9_14': {'price': '7.80','mktprice': '14.00' }, '9_16': {'price': '8.80','mktprice': '15.00' }, '9_17': {'price': '9.80','mktprice': '16.00' }, '10_13': {'price': '6.80','mktprice': '13.00' }, '10_14': {'price': '7.80','mktprice': '14.00' }, '10_16': {'price': '8.80','mktprice': '15.00' }, '10_17': {'price': '9.80','mktprice': '16.00' }, '12_13': {'price': '6.80','mktprice': '13.00' }, '12_14': {'price': '7.80','mktprice': '14.00' }, '12_16': {'price': '8.80','mktprice': '15.00' }, '12_17': {'price': '9.80','mktprice': '16.00' }} };
上面當我選中:
顏色的data-aid為3,規格的data-aid為13時,默認價格更新為3_13對應的價格 data-aid為3, 規格的data-aid為14時,默認價格更新為3_14對應的價格 data-aid為4, 規格的data-aid為13時,默認更新為4_13對應的價格
第二種:
{ 'library':[{ 'product_color':'625', 'product_spec':'626', 'buyer':'46.15', 'attribute':'0'},{ 'product_color':'625', 'product_spec':'627', 'buyer':'46.15', 'attribute':'0'},{ 'product_color':'625', 'product_spec':'628', 'buyer':'50.00', 'attribute':'1'},{ 'product_color':'629', 'product_spec':'627', 'buyer':'33.00', 'attribute':'0'} ]}
默認
顏色product_color: 625規格product_spec: 627價格為46.15當選擇product_color: 625, 規格為628,對應價格為50.00當選擇product_color: 629, 規格為627,對應的價格為33.00
這兩種json數據格式那種更為簡潔,效率更高效?
問題解答
回答1:有數據冗余重復的時候,盡量消除數據的重復。上面的兩種數據組織方式都沒有冗余,但是為了查詢方便,數據格式的組織可以像數據庫一樣,有一個便于查詢的主鍵,也可以說是id。所以個人感覺上面的那種方式好一點,可以直接通過key查到value。而下面的那種方式感覺查詢起來有些麻煩。
數據格式的組織也盡量范式化:
任何類型的數據在 state 中都有自己的 “表”。任何 “數據表” 應將各個項目存儲在對象中,其中每個項目的 ID 作為 key,項目本身作為 value。任何對單個項目的引用都應該根據存儲項目的 ID 來完成。ID 數組應該用于排序。
上面的引用是來自Redux官方文檔推薦的state組織方式,可以參考一下。
