阿里巴巴新零售數據庫設計(簡化版)


阿里巴巴新零售數據庫設計(簡化版)

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

image.png

基礎概念

SPU

Standard Product Unit 標准產品單位
SPU描述一個產品的各種特性


什么時候用到SPU?

想買個ipad,搜ipad .
平台先去產品表搜id,然后再去商品表搜數據
因為產品表SPU數量遠遠小於商品表,這樣可以很快獲得商品信息

SKU

Stock Keeping Unit 庫存進出計量單位
SKU是物理上不可分割的最小存貨單位

庫存字段,理論上應該放到SKU商品表與倉庫表的交叉表內

SKU與權重

  • 新零售平台主要是B2C的,所以修改SKU對權重的影響不大.
  • 但是B2B的平台,修改SKU對商品權重影響很大 (約束商家修改SKU賴賬之類,如"全新進口"在客戶購買后改成了"國產")

SKU與參數如何對應

品類不同,參數不同
采用1對多的數據結構
image.pngimage.png

新零售系統的進銷存屬性

員工發貨/角色權限定義
image.png

商品采購與入庫

image.png

表結構設計知識點總覽

image.png

表結構設計

品類表

image.pngimage.pngimage.png

參數表

boolean類型在mysql中是tinyint(1)

image.pngimage.pngimage.png

品牌表

設計首字母是為了前端分類查找

image.pngimage.pngimage.png


商品分類表(論壇留言表)

image.pngimage.pngimage.png

分類與品牌關聯中間表

image.pngimage.png


產品表

菱形標記的是創建了索引
一般情況下不會給字符串創建索引

image.pngimage.png
image.png

商品表

image.pngimage.png
image.png

JSON本質是字符串,不適合作為索引
JSON格式的商品圖片

image.png

JSON格式的param參數,(這個參數列表是參數表里面定義的,后台上架商品時要求填寫)
image.png

省份表與城市表

image.png

零售店/倉庫/商品之間的對應關系

image.png

倉庫表/倉庫與商品中間表(庫存表)

image.png

零售店表/零售店與商品中間表(庫存表)

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

image.png

會員等級表

枚舉類型

image.pngimage.png

客戶表

image.png

客戶收貨地址表

prime 是否作為默認收貨地址

image.pngimage.png

購物優惠券表/客戶關聯優惠券表

  • 優惠券有使用期限,一個訂單只能使用一張券
  • 購物券與客戶記錄關聯,一個用戶有可能可以領多張同樣的券

deno 優惠券的金額
condition 超過多少錢才能使用優惠券
max_num 優惠券最大發放數量(默認null時不限數量)

image.pngimage.png

訂單表

code 流水號,里面可以包含日期類型等
type 訂單類型 線下銷售/網絡銷售
shop_id 哪個實體店銷售的
postage 郵費
weight 總重量,計算郵費用
voucher_id 優惠券id

image.png

訂單詳情表

一個訂單中,不允許出現兩個同樣的商品SKU

image.png

部門表/職位表/員工表

mgr_id 上司id
term_date 離職日期

image.png
image.pngimage.png

角色表/用戶表 (能使用管理系統的員工)

image.pngimage.png

快遞表

sku指的是發送了那些商品(因為一個快遞可以發送多個商品)
一個訂單里面商品多,可以拆成多個快遞發送,所以order_id可能一樣,但sku一定不一樣
qa_id 質檢員id
de_id 發貨員id
post_id 快遞單號
price 真實郵費
ecp 快遞公司(采用枚舉)

image.png

退貨表

payment 退款價格,有時可能不能按照原價退款

image.png

商品評價表

rating 一星到五星

image.pngimage.png

供應商數據表/供應商與商品管理表

type 供貨商類型: 廠家/代理/個人

image.png

采購表/入庫表/采購與入庫關聯表

image.png

表文件

neti-新零售數據庫.sql


流水號/訂單號設計

  • 訂單號是訂單的唯一編號,經常用來做查詢,設置為主鍵索引
  • 流水號是打印在購物單據上的字符串,用於閱讀,不做查詢

28位流水號設計
image.png

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

案例: 如"全新進口"等廣告信息,在客戶購買后改成了"國產"

  • B2B電商平台(如淘寶),通常采用保存歷次商品修改修改信息/降低搜索排名
  • B2C電商平台(如自營的蘇寧電商),只需要保存歷次商品修改信息即可

保存商品歷次修改信息

老數據可以定期歸檔

image.png

原表主鍵id,在這另起一個字段

image.png
image.png

訂單詳情表也需要修改添加sku_old_id字段

image.png

智能拆分訂單--就近發貨難題

由於是自建倉庫,
如果本地倉庫沒貨/顧客城市沒倉庫,
那就需要從外地倉庫發貨
需要計算哪個倉庫距離客戶距離最短

1.通過高德地圖API獲得客戶地理位置信息

可以使用hutool依賴包里的Http請求,查詢地理坐標

2.利用MySQL計算兩坐標點之間的距離

*111195 將坐標轉換成距離
距離是M
除以1000便是KM
如下是北京跟上海的地理位置距離

image.png

查詢出跟收貨坐標點距離最近的倉庫信息

image.png

且判斷庫存有貨

select t.id from
image.png





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM