特点
- 同一类商品的规格项分组一样
- 同一类商品的规格项一样
- 不同商品的规格值是不同的
规格参数
规格组
规格项:规格值
本博客对应的SQL文件下载地址:https://download.csdn.net/download/lianghecai52171314/88306884
方案一
数据库设计
查询17号商品的规格
SELECT
tb_specs_group.group_name,
tb_specs.specs_name,
tb_specs_value.specs_value
FROM
tb_goods
LEFT JOIN
tb_specs_value
ON
tb_goods.id = tb_specs_value.goods_id
LEFT JOIN
tb_specs
ON
tb_specs_value.specs_id = tb_specs.id
LEFT JOIN
tb_specs_group
ON
tb_specs.specs_group_id = tb_specs_group.id
LEFT JOIN
tb_category
ON
tb_goods.category_id = tb_category.id AND
tb_specs_group.category_id = tb_category.id
WHERE
tb_goods.id = 17
结果:
存在问题
- 需要创建多张表来描述规格参数之间的关系
- 查询时需要构造复杂的SQL语句
- 规格参数的数据量十分庞大,是商品信息的几十倍,查询效率很低
- 无法实现:要求新添加的商品的规格项发生改变,之前的商品不变的需求