我們想要設計一個電子商務應用程序,我們關於consitent股票數字的精神。我們不希望我們的顧客在購買物品後發現該物品缺貨,這是件大事。這裏的平均訂單有大約60個不同的項目,這將使事情更加棘手。有沒有庫存管理設計模式?
讓我們想象一下這兩個場景:
1號方案:
1)客戶C1打開網上商店,並找到他/她想要購買的產品;
2)該產品顯示爲「庫存」(但當前庫存爲1);
3)顧客C1將1件物品放入購物籃; 4)客戶C2進入網站並選擇相同的商品(放入購物籃),該商品仍被標爲「庫存」(庫存仍爲1);
5)客戶C1去結帳並確認他的購買,並且應用程序將該項目的當前庫存減少到0; 6)客戶C2持續購買物品,比如說35個其他不同的物品(花費20分鐘到客戶c2選擇他想要的物品); 7)客戶C2去結帳並確認這一購買,但是現在,他購買的第一件商品已不再可用(我們不能銷售它)。
8)應用程序警告客戶C2第一件物品不再可用,並且他必須檢查他的購物籃;
9)客戶C2生氣並關閉瀏覽器而不購買任何東西。
第二方案(但我認爲這是不必要的複雜性和越野車):
1)客戶C1打開網上商店,並找到他/她想要購買的產品;
2)該產品顯示爲「庫存」(但當前庫存爲1);
3)客戶C1在籃子中放入1個物品(並且應用程序將該物品的當前庫存減少到0);
4)客戶C2進入網站,看到他/她想要的物品缺貨;
5)客戶C2離開網站;
6)客戶C1持續購買物品(這些物品的庫存減少);
7)客戶C1關閉瀏覽器;
8)每隔一段時間,一些批處理程序開始移除已減少庫存但未被購買/確認的物品。
我們只有幾個不同的產品,但我們一直賣30,000左右。000件商品通過電話銷售,有些產品每天的銷售量高達2.000.000,因此負責該產品庫存的行中的併發可能會同時獲得許多更新,因此重要的是我們獲得良好的性能。
這些都是平常的場景,但有這給用戶帶來更好的體驗,同時保持股票數量一致,但產生巨大的應用性能的任何設計模式?
任何幫助將不勝感激。
乾杯
我會添加一個標籤「數據庫」,典型的設計模式是關於(面向對象的)代碼,而不是數據。 –
感謝您的提示,我剛剛完成了!乾杯 – jfbaro