阿里巴巴新零售数据库设计(简化版)

阿里巴巴新零售数据库设计(简化版)

语雀地址:https://www.yuque.com/gavincoder/ngs5gi/upkm1p#WXQOv

阿里巴巴新零售数据库设计(简化版)_第1张图片

基础概念

SPU

Standard Product Unit 标准产品单位
SPU描述一个产品的各种特性


什么时候用到SPU?

想买个ipad,搜ipad .
平台先去产品表搜id,然后再去商品表搜数据
因为产品表SPU数量远远小于商品表,这样可以很快获得商品信息

SKU

Stock Keeping Unit 库存进出计量单位
SKU是物理上不可分割的最小存货单位

库存字段,理论上应该放到SKU商品表与仓库表的交叉表内

SKU与权重

  • 新零售平台主要是B2C的,所以修改SKU对权重的影响不大.
  • 但是B2B的平台,修改SKU对商品权重影响很大 (约束商家修改SKU赖账之类,如"全新进口"在客户购买后改成了"国产")

SKU与参数如何对应

品类不同,参数不同
采用1对多的数据结构
阿里巴巴新零售数据库设计(简化版)_第2张图片阿里巴巴新零售数据库设计(简化版)_第3张图片

新零售系统的进销存属性

员工发货/角色权限定义
阿里巴巴新零售数据库设计(简化版)_第4张图片

商品采购与入库

阿里巴巴新零售数据库设计(简化版)_第5张图片

表结构设计知识点总览

阿里巴巴新零售数据库设计(简化版)_第6张图片

表结构设计

品类表

阿里巴巴新零售数据库设计(简化版)_第7张图片阿里巴巴新零售数据库设计(简化版)_第8张图片阿里巴巴新零售数据库设计(简化版)_第9张图片

参数表

boolean类型在mysql中是tinyint(1)

阿里巴巴新零售数据库设计(简化版)_第10张图片阿里巴巴新零售数据库设计(简化版)_第11张图片阿里巴巴新零售数据库设计(简化版)_第12张图片

品牌表

设计首字母是为了前端分类查找

阿里巴巴新零售数据库设计(简化版)_第13张图片阿里巴巴新零售数据库设计(简化版)_第14张图片阿里巴巴新零售数据库设计(简化版)_第15张图片


商品分类表(论坛留言表)

阿里巴巴新零售数据库设计(简化版)_第16张图片阿里巴巴新零售数据库设计(简化版)_第17张图片阿里巴巴新零售数据库设计(简化版)_第18张图片

分类与品牌关联中间表

阿里巴巴新零售数据库设计(简化版)_第19张图片阿里巴巴新零售数据库设计(简化版)_第20张图片


产品表

菱形标记的是创建了索引
一般情况下不会给字符串创建索引

阿里巴巴新零售数据库设计(简化版)_第21张图片阿里巴巴新零售数据库设计(简化版)_第22张图片
image.png

商品表

阿里巴巴新零售数据库设计(简化版)_第23张图片阿里巴巴新零售数据库设计(简化版)_第24张图片
image.png

JSON本质是字符串,不适合作为索引
JSON格式的商品图片

image.png

JSON格式的param参数,(这个参数列表是参数表里面定义的,后台上架商品时要求填写)
image.png

省份表与城市表

阿里巴巴新零售数据库设计(简化版)_第25张图片

零售店/仓库/商品之间的对应关系

阿里巴巴新零售数据库设计(简化版)_第26张图片

仓库表/仓库与商品中间表(库存表)

阿里巴巴新零售数据库设计(简化版)_第27张图片

零售店表/零售店与商品中间表(库存表)

如果新零售平台有多个分店,库存不能放在商品表里

阿里巴巴新零售数据库设计(简化版)_第28张图片

会员等级表

枚举类型

阿里巴巴新零售数据库设计(简化版)_第29张图片阿里巴巴新零售数据库设计(简化版)_第30张图片

客户表

阿里巴巴新零售数据库设计(简化版)_第31张图片

客户收货地址表

prime 是否作为默认收货地址

阿里巴巴新零售数据库设计(简化版)_第32张图片image.png

购物优惠券表/客户关联优惠券表

  • 优惠券有使用期限,一个订单只能使用一张券
  • 购物券与客户记录关联,一个用户有可能可以领多张同样的券

deno 优惠券的金额
condition 超过多少钱才能使用优惠券
max_num 优惠券最大发放数量(默认null时不限数量)

阿里巴巴新零售数据库设计(简化版)_第33张图片阿里巴巴新零售数据库设计(简化版)_第34张图片

订单表

code 流水号,里面可以包含日期类型等
type 订单类型 线下销售/网络销售
shop_id 哪个实体店销售的
postage 邮费
weight 总重量,计算邮费用
voucher_id 优惠券id

阿里巴巴新零售数据库设计(简化版)_第35张图片

订单详情表

一个订单中,不允许出现两个同样的商品SKU

阿里巴巴新零售数据库设计(简化版)_第36张图片

部门表/职位表/员工表

mgr_id 上司id
term_date 离职日期

阿里巴巴新零售数据库设计(简化版)_第37张图片
阿里巴巴新零售数据库设计(简化版)_第38张图片阿里巴巴新零售数据库设计(简化版)_第39张图片

角色表/用户表 (能使用管理系统的员工)

阿里巴巴新零售数据库设计(简化版)_第40张图片阿里巴巴新零售数据库设计(简化版)_第41张图片

快递表

sku指的是发送了那些商品(因为一个快递可以发送多个商品)
一个订单里面商品多,可以拆成多个快递发送,所以order_id可能一样,但sku一定不一样
qa_id 质检员id
de_id 发货员id
post_id 快递单号
price 真实邮费
ecp 快递公司(采用枚举)

阿里巴巴新零售数据库设计(简化版)_第42张图片

退货表

payment 退款价格,有时可能不能按照原价退款

阿里巴巴新零售数据库设计(简化版)_第43张图片

商品评价表

rating 一星到五星

阿里巴巴新零售数据库设计(简化版)_第44张图片image.png

供应商数据表/供应商与商品管理表

type 供货商类型: 厂家/代理/个人

阿里巴巴新零售数据库设计(简化版)_第45张图片

采购表/入库表/采购与入库关联表

阿里巴巴新零售数据库设计(简化版)_第46张图片

表文件

neti-新零售数据库.sql


流水号/订单号设计

  • 订单号是订单的唯一编号,经常用来做查询,设置为主键索引
  • 流水号是打印在购物单据上的字符串,用于阅读,不做查询

28位流水号设计
阿里巴巴新零售数据库设计(简化版)_第47张图片

避免偷换交易中的商品信息

案例: 如"全新进口"等广告信息,在客户购买后改成了"国产"

  • B2B电商平台(如淘宝),通常采用保存历次商品修改修改信息/降低搜索排名
  • B2C电商平台(如自营的苏宁电商),只需要保存历次商品修改信息即可

保存商品历次修改信息

老数据可以定期归档

阿里巴巴新零售数据库设计(简化版)_第48张图片

原表主键id,在这另起一个字段

阿里巴巴新零售数据库设计(简化版)_第49张图片
阿里巴巴新零售数据库设计(简化版)_第50张图片

订单详情表也需要修改添加sku_old_id字段

阿里巴巴新零售数据库设计(简化版)_第51张图片

智能拆分订单--就近发货难题

由于是自建仓库,
如果本地仓库没货/顾客城市没仓库,
那就需要从外地仓库发货
需要计算哪个仓库距离客户距离最短

1.通过高德地图API获得客户地理位置信息

可以使用hutool依赖包里的Http请求,查询地理坐标

2.利用MySQL计算两坐标点之间的距离

*111195 将坐标转换成距离
距离是M
除以1000便是KM
如下是北京跟上海的地理位置距离

阿里巴巴新零售数据库设计(简化版)_第52张图片

查询出跟收货坐标点距离最近的仓库信息

阿里巴巴新零售数据库设计(简化版)_第53张图片

且判断库存有货

select t.id from
阿里巴巴新零售数据库设计(简化版)_第54张图片




你可能感兴趣的:(阿里巴巴新零售数据库设计(简化版))