我正在構建一個售票應用程序,用於跟蹤門票庫存,並在特定門票售罄時停用門票。在數據庫中釋放庫存的最佳做法
我想知道最好的做法是什麼時,訂單是通過廢棄中途釋放庫存回到店裏。
電流的流向:
- 用戶添加
items
到order
爲line_items
和成功付款 items
爲完成order
標有是基於他們的line_items
- 我掃更新
quantity_available
定期爲orders
,在> 20分鐘內無動作,刪除這些訂單的'line_item
s並更新quantity_available
這種感覺就像我失去了這個東西。首先,我喪失了詳細審查遺棄訂單的能力(我仍然有任何付款/退貨等,但沒有訂單項)。如果用戶在21分鐘後試圖恢復舊訂單,他們將不得不重新開始。
相反,它佔用了庫存了20分鐘,這可能會失去我們的銷售在演出幾乎銷售一空。
任何有識之士將不勝感激。謝謝。
作爲後續:我想在運行時計算'line_items'以獲取當前的庫存[如此處所述](http://stackoverflow.com/questions/287097/inventory-database-design)。對於我來說,似乎需要在每一筆交易中執行該查詢的速度很慢,並且緩存數量會更好。不過,很可能我錯了。 – 2011-02-25 18:16:48
很難避免這種情況,但是我會存儲每個預訂/購買,當某人註冊時,您會檢查count_available(不應該被調整)的count(r + p)。如果你不這樣做,你可以有一些腳本/過程調整數字的情況,但你不明白爲什麼 - 這可能導致賣出超賣/賣出。僅供參考我運行了幾個這樣的軟件系統,並沒有遇到「如果有人想要它,但別人有它保留,並沒有使用」的情況 - 但(儘管我也擔心它) – Rudu 2011-02-25 19:07:14