*先說下事情的起因,公司的財務總監查看了公司的總帳是500萬,前段時間支出了10萬但是系統還沒有走帳,這時總監就分咐小李去走下帳。
由於總監記性不太好,剛通知完小李又通知了小曾。巧的是小李和小曾同時查看了公司的帳目表(比如GRIDVIEW),發現現帳確實是500萬。
於是小李先走了10萬,搞定回家吃玉米了。這時雖然小李已經走了10萬,但是由於是web系統,本來就是不需連線的。這時小曾也沒有重新整理頁面。
還是顯示的500萬總帳,於是小曾拿下正在放著獅子座的MP3的耳機,又走了10萬。這時候小李和小曾都以為已經完滿的完成了任務。誰知第二
天上班總監把小李小曾一同叫去了辦公司,對他們說“我說李哥、曾哥。你們怎麼回事啊?讓你們走10萬的帳確走了20萬。你們是不想混了是嗎?
這時這李小曾你看看我,我看看你,心裡茫然(本故事純屬加班到深夜已經到了神呼的狀態的人虛購)
下面來說一下我的解決辦法。比如下面的表(不要考慮資料庫的結構,我是說假如)
SysNo 總帳
1 500萬
我們在後面增加一列,我採用的是GUID,當然SQLSERVER也有自己的時間戳記方式記錄修改狀態
SysNo 總帳 更新標識(GUID)
1 500萬 GUID1
這樣,還是上面的情況,當小要更新時,會用用戶端的GUID碼去進行比對,這時用戶端GUID碼為GUID1和資料庫中一置,進行正常的更新操作,並
重建新的GUID更新標識。
這時小曾也進行更新操作,但是對比GUID更新標識的時候探索資料庫中的GUID碼為GUID2與用戶端的GUID1不對應,這時系統會給予一個友好的提示,
比如:“對不起,發生了友好衝突問題,請重新操作!”並同時更新下頁面重新讀取GUID標識碼,這時標識碼為GUID2再次更新時就可以正常更新了,但
是本例的情況更新後小增發現,哇已經是490萬了,那我就不用再走帳了。繼續啃他的玉米去了。
這隻是本人想的一個不是很正規的解決特有問題的方式,其它的方法還請有經液的人拍磚。
唉,時間不早了。回家休息吧,明天一早還要上班!