4、商品规格实现

2017-10-14  本文已影响0人  海豚的小小海

一、商品描述的保存

数据库中商品信息和商品描述是分开存储的,因为商品描述是大文本,当我们展示商品列表时,只需要商品信息不需要商品描述,分开存储节省性能。

二、商品规格

参考京东商城

方案一:使用多个表来存储

1、每一类商品有多个分组
2、每个分组下有多个项
3、每个商品对应不同的规格参数

商品规格.png 表.png

规格数据的实现


二维表.png

方案一存在的问题:

1、需要创建多张表来描述规格参数之间的关系。
2、查询时需要复杂的sql语句查询。
3、规格参数数据量是商品信息的几十倍,数据十分庞大。查询时效率很低。
4、如果要求新添加的商品规格项发生改变,之前的商品不变,是不能实现的。

方案二:使用模板的思路实现

1、每一个商品分类对应一个规格参数模板。
[
    {
        "group": "主体",  //组名称
        "params": [ // 记录规格成员
            "品牌",
            "型号",
            "颜色",
            "上市年份",
            "上市月份"
        ]
},
    {
        "group": "网络",  //组名称
        "params": [ // 记录规格成员
            "4G",
            "3G,
            "2G"
        ]
    }
]
2、使用模板

每个商品对应唯一的规格参数。在添加商品时,可以根据规格参数的模板生成一个表单,保存规格参数时,还可以生成规格参数的json数据。保存到数据库

[
    {
        "group": "主体",
        "params": [
            {
                "k": "品牌",
                "v": "苹果(Apple)"
            },
            {
                "k": "型号",
                "v": "iPhone 6 A1589"
            },
            {
                "k": "智能机",
                "v": "是 "
            }
        ]
    }
]

优点:
1、不需要做多表管理。
2、如果要求新添加的商品规格项发生改变,之前的商品不变是很简单的。

缺点:
复杂的表单和json之间的转换。对js的编写要求很高。

三、创建规格参数模板

实现流程


流程实现.png

1、选择商品分类,提交规格参数模板

选择商品分类后根据选择的商品分类到tb_item_param规格参数模板表中取规格模板,取到了说明此商品分类的规格模板已经添加提示不能添加。

如果没有取得正常添加。

2、根据规格参数模板生成表单

在商品添加功能中,读取此商品对应的规格模板,生成表单,供使用者添加规格参数

3、保存商品的规格参数

提交表单之前,先把规格参数表单中的内容转换成json数据然后跟商品基本信息、商品描述同时提交给后台。保存至数据库。

json格式转换.png

转换后把规格参数的信息放到表单的hidden域中:

提交数据.png

随着表单的提交同时提交。

4、展示规格参数

当现实商品详情页面时,需要把商品的规格参数根据商品id取出来,生成html展示到页面。

上一篇下一篇

猜你喜欢

热点阅读