电商项目中商品规格数据库的设计

在一个电商项目中,少不了有商品,每个商品都有对应的商品信息,其中商品规格是每钟商品都不一样的以某平台的两种商品为例,

某手机:

 

某衣服:

手机和衣服的商品规格是不相同的,手机有颜色、存储等规格,衣服有尺码、颜色等规格。那么商品规格在商品信息表中就不能把每一个规格都设计成一个字段,所以就要把所有的规格都设计成一个字段。例如下面就是某件商品的所有规格在数据表中的呈现,在这里设计成了一个JSON格式的字符串,对应的,在前端或者后台解析的时候也要用JSON解析。

 

前端解析:

后台将商品信息从数据库读取后,会传到前端做数据的呈现,例如传到前端的商品规格的数据是'{"颜色":["彩色"],"尺码":["XS","S","M","L","XL","XXL"]}'。在这条JSON字符串中,每一个key就是该商品存在的规格,key对应的value,就是每个规格键下存在着哪些规格值。

var jsonObj=JSON.parse('{"颜色":["彩色"],"尺码":["XS","S","M","L","XL","XXL"]}');
//遍历所有的规格键
for (var key in jsonObj)
{
    //在这里做打印规格键名的操作
    
    //遍历当前规格键下的规格值
    for(var value in jsonObj[key])
    {
        //在这里做打印规格值的操作
    }
}

再例如,在订单中的商品,每个商品都选中了一套规格,在页面或许需要做呈现操作,如:

在这里,“颜色:彩色, 尺码:均码”就是该商品的一套规格,这里相对商品信息中的规格就更简单了,在数据库中:

这也是一条JSON格式的字符串,在前端需要解析并做字符串拼接:

var jsonObj = JSON.parse('{"颜色":"彩色","尺码":"均码"}');
var specs = "";
for (var key in jsonObj) {
    specs += key+":"+jsonObj[key]+", "
}
specs = specs.substring(0,specs.length-2);
//这样得到的字符串就是“颜色:彩色, 尺码:均码”,可以在页面上呈现了。

 

 

原文地址:https://www.cnblogs.com/zhangcaihua/p/12867855.html