問題:在表格中使用rowversion(timestamp)而不是LastModifyOn(DateTime)列的好處是什麼?
我工作的asp.net應用程序,我的目的是要確認,只有當沒有更新它在用戶的請求之間,並提交一個錶行被更新。在不同的瀏覽器
情景
- 用戶X和Y相同的開放發票(invoiceid = 12)
- 用戶X改變發票日期到1 - 7月份-2014在UI。
- 用戶Y改變發票日期到5月-2014在UI
- 用戶X按提交按鈕.--發票日期改變爲1-七月-2014
- 用戶Y按提交按鈕.--發票日期改變到2014年7月5日。
X和Y都不知道發票數據是不是在兩者之間改變。
解決方案-1
- 我們在發票表
- 當檢索編輯的發票數據也越來越LastModifyOn列數據
- 添加一列LastModifyOn(DATETIME)保持加密LastModifiedOn UI中隱藏字段中的數據
- 當用戶提交發票數據更改時,我們還發送LastModifiedOn進行比較。
- 顯示正確的信息。
解決方案 - 2
- 我們在發票表中添加一列版本(rowversion)
- 當檢索編輯的發票數據也越來越版本列數據
- 保存加密的版本數據隱藏在UI中
- 當用戶提交發票數據發生變化時,我們還發送版本進行比較。
- 顯示正確的信息。
X和Y知道發票數據是否在兩者之間發生變化。
問:
現在我的問題是什麼好處,我們將使用的版本(rowversion)列在LastModifyOn(日期時間)獲得...
點:
- 我們在發票表中審覈追蹤,以便最後更新數據已經可用。
- 請註明合理的長處不喜歡我們並不需要更新明確rowversion列或時間戳的定義..
有多高概率打開/更新相同的發票嗎? –
這是非常高的... @ BogdanSahlean – Moumit
然後,我會使用一個新穎的控制機制。 rowversion數據類型用於樂觀併發控制機制。當出現低概率時,建議使用OCC。爲了衝突。但這不是你的情況。 –