项目架构图
数据库设计
-
根据用户模块,可以有如下数据库设计
-
根据商品相关,可以有如下数据库设计
注意:
- 商品表中会有商品图片和商品种类的字段属性,
1. 图片的话,你点开商品,肯定不应该只要一张,这样的话就要考虑专门建一张表用来保存商品的多张图片信息,商品和图片表是一对多的关系,需要把外键放在图片里(即商品的ID),而在商品表中也不能不设置图片,用户来了之后要根据图片查看商品详情,这样也需要设计一个图片,这样做的好处是以空间(设置一张图片占用了一点空间)换时间(避免再去数据库索引图片返回数据花费的时间)
2. 商品种类的话,需要额外建立一张表,商品种类表和商品表是一对多的关系,所以要在商品表中设置外键(即商品种类表的ID) - SKU和SPU的概念
- SPU(标准产品单位):举例来讲,华为P30就是一个SPU,与颜色,款式,套餐等无关
- SKU(库存量单位):就是库存计量单位,可以是件,盒、斤等为单位,例如,华为P30的红色款,256G内存等
- 商品SKU表中添加一个销量的字段,目的是为了之后便于按人气进行排名
- 商品表中会有商品图片和商品种类的字段属性,
-
redis实现购物车功能,不再额外建一个表了,这样就大大提高了效率,此外,redis也保存用户历史浏览记录
-
根据订单相关,可以有如下数据库设计
注意
- 如果一个表中的某一字段属性有多个值,那该属性就要拿出来单独设置一个表
- 总数目、总金额可以不设置,因为在订单商品表里面有数量和价格,可以自行计算
- 评论要放到订单商品表