我正在實施在線商店。選擇更新等待網絡操作?
我想知道是否可以使用select for update
鎖定訂單記錄。
以下是我認爲鎖定的訂單狀態更改。
- 支付處理:買受人支付的訂單,訂單從去到
waiting-for-payment
paid
- 訂單取消:買方或賣方取消
- 爲了確認順序:賣家確認訂單,使買方不能取消訂單
例如,當買方取消訂單,賣方確認訂單。
如果沒有鎖定,買方可能會執行取消操作,賣方可能會同時確認訂單。
但隨着鎖定,買方取消或賣家確認。
到目前爲止,我的問題是這樣的:即使它只是表中的一行,鎖定等待網絡操作(支付處理)的訂單實例會有太大的性能開銷?
我正在使用postgresql
我不太明白你的答案。「最好還是使用事務處理歷史記錄表,記錄交易狀態隨時間變化的完整日誌」你能否給我提供一個鏈接,讓我可以更好地理解這句話? – eugene
我的猜測是,你創造了狀態變化的歷史。並且在你改變狀態之後,你查看以前的狀態改變並且提出錯誤並且回滾,如果當前狀態改變從先前狀態無效的話。想知道我可以如何使用歷史表..? – eugene