2017-07-06 82 views
0

我有一個數據庫,可以被多個用戶訪問。 例如User 1將檢索表​​中所有可用數據集的列表。 User 2做同樣的事情,並且兩個用戶之後都得到相同的數據集。識別多用戶數據庫中已更改的數據

因此,現在,如果User 1想要將ABC寫入到Index 1的數據集中,他可以這樣做,並且數據集是持久的。 但如果User 2現在想要寫ABBIndex 1到數據集,他怎麼知道,該數據集已更新?

有沒有多用戶數據庫訪問模式或我可以只使用哈希算法來獲得,如果有一個更新的數據集?

或者還有其他方法嗎?

+0

關鍵詞是樂觀鎖定..「解決方案2號: - 使用時間戳數據類型」好.. https://www.codeproject.com/Articles/114262/6-ways-of-doing-locking-in- NET-Pessimistic-and-opt – levent

+0

假設您的應用程序是異步的,並且您正在檢索數據,查看數據,然後進行更改,則需要在寫入數據庫的同一SQL操作中處理數據更改檢查,因此你*可以*「使用散列算法來獲得是否有更新的ataset」,但如果你這樣做,然後回去寫,你仍然可以爭論 – theo

回答

0

這裏有很多可能的答案,很大程度上取決於您的應用程序體系結構。

兩個用戶會在同一時間對同一行的工作?如果是這樣,如果他們對於數據應該在哪裏有不同的想法,這聽起來像是一個需要考慮和解決的業務問題。

也就是說,如果您有接收數據,然後試着寫回,使用一個時間戳或校驗和驗證的一部分,是處理這種解決方案常見的和有用的方式的前端。

如果我實現這個我會用一個存儲過程,並迫使我的應用程序通過校驗回PROC。該過程將檢查校驗和是否仍然準確,如果不是,寫入將失敗。