题目
题目来源于书上的实践任务。题目如下:
对于网上商城系统进行系统升级,新增两个功能。对其进行数据库需求分析和设计。
(1)新增商品打折功能,管理员可以对每件商品进行折扣设定,会员购买该商品时就可以享受相应的
(2)在商品分类上支持多层级分类,例如生鲜类可细分为蔬菜水果、肉类、乳制品,肉类又可进一步细分成猪肉、牛羊肉、禽类等。管理员可以修改商品分类,调整目录层级,用户可以通过多层级分类步一步找到自己所需的商品。
解答
(1)新增商品打折功能对于新增商品打折功能。
分析
需要在商品表中新增一个折扣字段,用于存储商品的折扣信息。管理员可以在后台管理系统中对每件商品进行折扣设定,对应地更新商品表中的折扣字段。在会员购买商品时,需要在订单表中新增一个折扣字段,用于存储该订单中商品的折扣信息。同时,在计算订单总价时,需要根据商品的折扣信息进行相应的折扣计算。
设计
具体的数据库表设计如下:
product商品表):
代码语言:javascript复制字段名 类型 描述
id int 商品ID
name varchar 商品名称
price decimal 商品价格
discount decimal 商品折扣
... ... ...
(2)多层级分类功能
分析
对于多层级分类功能,需要在商品分类表中新增一个父分类字段,用于存储该分类的父分类信息。管理员可以在后台管理系统中新增、修改、删除商品分类,对应地更新商品分类表中的分类信息。在用户浏览商品时,可以通过多层级分类进行筛选,需要通过递归查询获取该分类及其子分类下的所有商品信息。在商品表中,需要新增一个分类ID字段,用于存储该商品所属的分类信息。同时,在后台管理系统中,需要提供分类层级调整的功能,用于修改商品分类的目录层级。
设计
具体的数据库表设计如下:
商品分类表(category):
代码语言:javascript复制字段名 类型 描述
id int 分类ID
name varchar 分类名称
parent_id int 父分类ID
... ... ...
代码语言:javascript复制-- 商品表(product):
字段名 类型 描述id int 商品IDname varchar 商品名称price decimal 商品价格category_id int 分类ID... ... ...