我目前正在構建一個Web應用程序(適度現代),可以對數據庫執行一些簡單的數據修改操作。我正在考慮潛在的問題。Web應用程序:並行更改數據庫中的數據
假設用戶登錄到Web應用程序並從存儲庫加載一些數據。 (S)他更改數據,然後想將其寫回數據庫。
如何防止以標準化方式如下場景:
- 他(她)登錄兩次,已經從第一屆保存時會丟失第二會話保存一些數據。
- 其他一些用戶加載了數據,現在正在更改它,他們可能會覆蓋我們的更改。
我不想說2階段提交,我不打算推出我自己的版本。防止同一用戶登錄兩次(用戶單例),再加上嚴格的權限管理可以解決第一個問題。但是,如果業務需求允許多個代理查看和更改相同的數據,我仍然處於虧損狀態。
是否有差異庫/算法測試想要寫入的數據之前,如果讀取期間的假設持有?對於大型商業應用,這通常如何解決?
我可以通過「樂觀鎖定」中的「你」來看到,你指的是一個bean,它使得事情變得更容易。這似乎是一個合理的解決方案。 – 0xCAFEBABE
你是對的! –