簡體   English   中英

當我們已經有了用於在線訂購的交易時,是否需要記錄級別鎖定? (演唱會門票或飛機票的)

[英]Do we need Record Level Locking when we already have Transaction for online ordering? (of concert ticket or airline booking)

要在線訂購音樂會座位或機票,我們需要記錄級別鎖定還是交易足夠好?

對於音樂會門票(例如,座位號20B)或飛機票(即使預訂過多,例如,限制為210),我認為網站在顯示門票購買屏幕時無法鎖定任何記錄或開始交易。

但是,在用戶單擊“確認購買”之后,服務器應開始交易,購買席位20B,然后嘗試提交。

如果另一個用戶在先前的交易中已經購買了Seat 20B,那么當前交易失敗是“提交”部分嗎?

所以...我們不需要記錄級別鎖定嗎? 事務是否總是序列化(一個接一個),所以這就是為什么我們可以確定不存在“競爭條件”的原因? 那么在什么情況下需要記錄級別鎖定?

在插入行之前,您可以檢查具有相同SeatId的條目的位置。 如果存在,則將其回滾,否則插入“行並提交”。 我什至沒有Cofident,我認為如果服務非常繁忙,則可能需要在開始插入操作之前鎖定。

但是, 還有第二種選擇

您維護一個showIdseatId使用這兩個進行索引。 並在此索引上創建唯一約束。 現在以任何鎖定方式啟動事務。 如果存在重復。 由於獨特的約束,它顯然將失敗。 並且提交將失敗。

尼爾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM