yk產(chǎn)品表重構(gòu)

一、背景介紹
前期工程師/產(chǎn)品經(jīng)理沒有考慮到產(chǎn)品結(jié)構(gòu)變化。把產(chǎn)品的庫存、價格設(shè)置屬性放置到一張表里面,即成為橫向表(這為后期產(chǎn)品結(jié)構(gòu)拓展帶來很大的不方便)。所以,因旅游電商產(chǎn)品需求變更,需將產(chǎn)品橫向表重構(gòu)為縱向表。

二、SKU屬性設(shè)計方式

  1. 維護一個銷售屬性表(SKU表)
    a. 每個SKU屬性表獨立維護SKU屬性和選項。
    b. SKU屬性的命名一般和分類相關(guān)。
    c. 擴展點:SKU屬性集合和商品分類關(guān)聯(lián),這樣避免在添加商品時列出太多的SKU屬性集。
  2. 商品sku表
    基于sku維護商品的庫存、價格

3.當(dāng)我們添加一個商品的時候,在不考慮頁面展現(xiàn)的情況下需要這幾步:
a.插入商品基本信息到商品表
b.插入商品屬性到屬性表
c.插入銷售屬性到銷售屬性表
d.插入銷售屬性ID組合,數(shù)量,價格等到商品SKU表。
三、開始重構(gòu)
1. 按需求提取可能會變的基本屬性字段
2. 提取銷售屬性字段
3. 根據(jù)銷售屬性字段創(chuàng)建sku
四、訂單表設(shè)計
1、商品基礎(chǔ)屬性及庫存(SKU)
2、訂單以及訂單詳情(Order & OrderItems),OrderItems 里面的記錄價格必要的冗余信息,同時關(guān)聯(lián)
上快照id(即 以下方案a 和方案b結(jié)合)。
訂單內(nèi)商品數(shù)據(jù)應(yīng)該怎么保存?
方案a
在訂單創(chuàng)建的時候直接把商品數(shù)據(jù)保存在訂單里面,作為訂單的一個附屬字段
這樣子后續(xù)修改商品,不會對已經(jīng)在訂單內(nèi)的商品任何影響
問題:如果商品修改不頻繁的情況下,會大量增加訂單數(shù)據(jù)的大小,同一個商品下10單,10個單里面都
有商品數(shù)據(jù)(特別是需求顯示商品的字段較多時,比如規(guī)格,產(chǎn)地,單位等等等等)
方案b
在訂單創(chuàng)建的時候,對商品生成一個快照存在一個商品快照表中(同一個商品可含多個快照,訂單創(chuàng)建
時判斷商品快照是否為最新,最新則不新生成快照),訂單內(nèi)存儲商品快照ID,顯示訂單商品時,用ID
去取商品快照顯示
這樣子后續(xù)修改商品,不會對已經(jīng)在訂單內(nèi)的商品任何影響,
問題:比如訂單只保存最近一年,一年以前訂單自動歸檔,那商品快照表就需要單獨處理判斷商品的快
照是否該歸檔,如果商品快照不定期歸檔,數(shù)據(jù)量會無限變大
方案c
創(chuàng)建訂單直接保存商品ID,顯示商品的時候在去商品表里查詢商品
這樣子最節(jié)省空間

參考文檔:http://www.cnblogs.com/mmmjiang13/archive/2011/04/21/1983079.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容