- 取得連結
- 以電子郵件傳送
- 其他應用程式
- 取得連結
- 以電子郵件傳送
- 其他應用程式
此情境中,當訂單成立的時候將會直接從商品庫存資料表扣除購買的商品數量
商品「可購買數量」為商品庫存資料表中儲存的商品數量
所以在消費者取消訂單的時候,商品數量將會被回補到商品庫存資料表
此項目並沒有實作在範例程式碼
接下來開始建立以上述邏輯為基礎的資料庫物件
修改資料庫物件
執行 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 次的下單失敗
雖然沒甚麼實際意義,不過傷心的消費者變多了
結論
此資料庫設計在搶購情況下並沒有商品超賣的情況產生
章節清單
- 電子商務網站商品搶購模擬 - 使用預存程序
- 建立 eShop 資料庫
- 模擬搶購應用程式簡介
- 將購訂單商品數量與庫存量作關聯
- 扣除購買商品的商品庫存量
留言
張貼留言