我應該如何處理這種情況如何處理數據庫併發
- 用戶A正在編輯的文檔,
- 用戶B開始編輯同一個文檔
- 用戶B撲救
- 用戶A保存一個事件 - 應該失敗,但我應該如何處理?告訴用戶頁面(或實體)已被別人保存似乎不夠。用戶應該知道文檔/字段的哪一部分已被更改,並確定他是否要重試保存。
- 如果它的只是短的領域,我想我可以比較它們 - 什麼是一個有效的方法來比較舊的&在一個領域的新值?
- 如果它是一個長文本文件,我該如何做一些差異?或者我該如何處理?只要告訴用戶在打開文檔後保存了文檔似乎不夠?
我應該如何處理這種情況如何處理數據庫併發
在大多數應用程序中,實際上它實際上是是,足以僅告訴用戶由於另一用戶更新相同數據而導致保存失敗。這被稱爲optimistic concurrency:本質上,您假設不會發生衝突,並且您通過簡單地拒絕相同數據的第二次寫入操作來處理髮生衝突的情況。
除此之外的任何東西都是自定義編程。您提供差異的建議是特定於您的域的。如果是關於編輯文本文檔,您可以使用標準差異文檔。然而,在走這條路線之前,問問自己是否值得花費大量時間...
注意確保爲哪種語言,你想這一點,但在Java中我用xstream序列化對象到XML,然後利用差異對http://www.crosswire.org/jsword/java2html/org.crosswire.common.diff.index.html看到什麼改變了個XML。
如果您只有幾個實體和用例,那麼您可以通過手動實現所有這些行爲而僅使用diff引擎來比較大塊文本。