spu和sku的區別,spu和sku的區別及數據結構?

今天是劉小愛自學Java的第150天 。
感謝你的觀看,謝謝你 。
學習計劃安排如下:

  • 昨天實現了商品規格參數組業務,今天繼續實現其對應的規格參數 。
  • 理清楚SPU和SKU的概念,同時分析對SPU的數據表設計 。
一、規格參數業務實現1業務需求分析
spu和sku的區別,spu和sku的區別及數據結構?

文章插圖
昨天實現了規格參數組相關的業務,點擊商品分類,可以查看到其對應的規格參數組信息 。
比如上圖中“手機”這個商品分類的規格參數組有:主體、基本信息和操作系統 。
現在我們要實現的需求是:
點擊相應的規格組,會跳轉到其規格參數的頁面,也就是該規格組下有哪些規格參數?
具體數據需要我們從數據庫中查詢,因為我這邊業務還未完成,所以顯示的數據為:“該分組下沒有參數” 。
2請求相關分析
無外乎還是要弄清楚四大內容:
  • 請求路徑:真實路徑就是spec/params 。
  • 請求方式:GET請求 。
  • 請求參數:gid,也就是規格參數組id 。
  • 返回值:是一個規格參數數組 。
好,弄清楚了這四點,就可以寫后臺代碼了 。
3實體類和數據表
關于實體類有一個知識點要說明下 。
numeric這個字段在mysql數據庫中是一個關鍵字,會有沖突 。
面對這個問題有兩種解決方式:
①使用注解@Colum
說明關鍵字字段是哪個一個即可,但是該方式若是有多個關鍵字需要一一說明 。
②配置文件中配置
也可以在yam文件中如圖中配置 。
注意:該配置只在mysql數據庫中有用 。
3Java三層架構
【spu和sku的區別,spu和sku的區別及數據結構?】①Controller層代碼編寫
根據請求相關的四大內容即可完成Controller層的代碼編寫 。
注意請求參數gid是以問號的形式拼接到請求路徑中的,所以使用注解@RequestParam 。
②Service層代碼編寫
使用通用mapper完成查詢操作:因為不是主鍵查詢,所以創建對應的實體類對象,將gid賦值給該對象,最后根據該對象完成查詢 。
③Mapper層代碼編寫
繼承通用mapper提供的Mapper接口即可,在泛型中說明對應的實體類SpecParam 。
4測試
spu和sku的區別,spu和sku的區別及數據結構?

文章插圖
我們再次在管理系統中點擊對應的規格參數組,就能查詢到對應的規格參數了 。
上圖中就是“主體”這個規格參數組,從數據庫中查詢到了3個規格參數,此外還有:
  • 新增業務對應新增參數按鈕 。
  • 修改業務對應修改按鈕 。
  • 刪除業務對應刪除按鈕 。
關于這三個業務就暫且不一一說明了,其實無外乎就還是這么一個思路 。
二、SPU和SKU數據結構SPU和SKU是電商中兩個非常重要的概念 。
1什么是SPU和SKU呢?
  • SPU全稱為Standard Product Unit,翻譯過來就是標準產品單位 。
  • SKU全稱為Stock Keeping Unit,翻譯過來就是庫存量單位 。
這種官方定義看起來好像挺難理解的,我以某電商網站某品牌手機為例作個說明:
spu和sku的區別,spu和sku的區別及數據結構?

文章插圖
思考問題:上圖是一個商品么?
它不是一個具體的商品,它是一個SPU,我通過選擇不同的屬性可以組合成多個商品 。
SPU是商品的共有集,并不是固定某個商品 。
比如上圖中手機有三種顏色可以選擇,手機內存也有4種可以選擇 。
而SKU才是具體的某個商品 。
比如陶瓷黑、8G+128GB內存…等每一項都確定好之后的商品才是一個SKU 。
通俗理解就是我們購買訂單頁面對商品的詳細說明,就是一個SKU 。
每一個SKU的價格一般是不一樣,我們購買的是SKU而不是SPU 。
2SPU數據表設計分析
在數據庫中其被拆分成了兩張表,我們具體做一個分析:
spu和sku的區別,spu和sku的區別及數據結構?

文章插圖
商品①:陶瓷黑、8G+128GB內存…等屬性都確定后的一個SKU 。
商品②:亮銀版、8GB+256GB內存…等屬性都確定后的一個SKU 。
無論是商品①還是商品②其SPU都是一樣的 。
其包含有:id、商品名稱、品牌id,副標題、商品描述(描述一般都會描述配置最高的那個)、包裝、售后服務 。
因為關于商品描述這個字段非常的長,所以將SPU表做了一個拆分,將這些描述性字段單獨又放在了一個數據表中 。
最后行有不得反求諸己,我是@劉小愛

推薦閱讀