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