軟體工程師的小事:到底要不要 Close

電子商務搶購模擬 - 扣除購買商品的商品庫存量

此情境中,當訂單成立的時候將會直接從商品庫存資料表扣除購買的商品數量

商品「可購買數量」為商品庫存資料表中儲存的商品數量

所以在消費者取消訂單的時候,商品數量將會被回補到商品庫存資料表

此項目並沒有實作在範例程式碼

接下來開始建立以上述邏輯為基礎的資料庫物件

修改資料庫物件

執行 procedure-correct.sql 修改 Products.GetProductValidStorage 與 Orders.AddOrder 資料庫物件

執行搶購模擬

與先前步驟相同使用同一個指令進行搶購模擬

dotnet eShop.Loader.dll -t 2500 -e 11:12

啟用後會等待直到設定時間

執行完成後點選任意按鍵結束應用程式

模擬結束後開啟資料表查詢確認商品購買的狀態

確認結果

檢查 Events.AddEventDatabaseError 是否有預存程序執行錯誤

沒有錯誤產生

執行 validation.sql 指令碼確認查詢結果是否有超賣

查詢結果顯示訂購的商品總量與原庫存量是相符的

額外設定

確認 Orders.OrderMains 訂單資料表是否有異常情況

主索引與訂單編號的順序並不相同,從建立日期看到建立時間是相同的

從 Events.EventBuying 資料表紀錄中顯示有 275 次的下單失敗

雖然沒甚麼實際意義,不過傷心的消費者變多了
結論

此資料庫設計在搶購情況下並沒有商品超賣的情況產生

章節清單
  1. 電子商務網站商品搶購模擬 - 使用預存程序
  2. 建立 eShop 資料庫
  3. 模擬搶購應用程式簡介
  4. 將購訂單商品數量與庫存量作關聯
  5. 扣除購買商品的商品庫存量

留言