兩個人同時改同一筆資料怎麼辦
同時編輯衝突:後存的人默默蓋掉先存的人。用版本戳記(樂觀鎖)或條件更新擋下;驗收開兩個視窗同時改同一筆。
定義:同時編輯衝突=兩個人同時開著同一筆資料在改,後存的人把先存的人的修改整個蓋掉,而且雙方都不知道。審核、編輯類系統的真實風險。
問題長什麼樣
A 主管開著一張單在審,B 同時也開著同一張改內容。兩人都按了存檔——後存的那份會默默覆蓋先存的那份,沒有任何警告。
兩種解法(實際用過)
- 版本戳記(樂觀鎖):存檔時附上「我當時看到的版本」,若資料已被別人改過,存檔會被拒絕並提示重新載入。「樂觀」的意思是平常不上鎖、假設衝突很少,真的撞到才擋。有些資料庫平台(如 Dataverse)內建這機制。
- 條件更新:用資料庫的「只有狀態還是 X 才准更新」語法——狀態被別人改了就更新失敗。
決策心得
平台有內建機制就用內建的,不要自己發明。跟 AI 說「這張表會有多人同時編輯,要防後存覆蓋」即可,讓它選平台合適的機制。
驗收方式
開兩個瀏覽器視窗同時改同一筆:後存的那個必須被擋下並看到明確提示,而不是默默蓋掉。