處理多用戶處理多用戶(開具發票)
要求: 我有一個應用程序(MySQL的PHP的jQuery的),其中用戶可以:
- 審查記錄和更新某些字段。通過選擇訂單
- 開具發票。
問題: 問題是發票不應在同一時間段內發出兩次。此外,一個字段不應該由兩個或更多用戶同時更新。
可能的解決方案:
- 鎖定表時,他們得到更新,如果用戶執行一個動作,通知並重新加載。
- Impliment門鎖系統,當用戶執行一定的動作,它鎖定這些操作由其他用戶來執行。
- ...
處理多用戶處理多用戶(開具發票)
要求: 我有一個應用程序(MySQL的PHP的jQuery的),其中用戶可以:
問題: 問題是發票不應在同一時間段內發出兩次。此外,一個字段不應該由兩個或更多用戶同時更新。
可能的解決方案:
不知道這是否會幫助你或沒有,但我會先在.net的數據表適配器的情況下閱讀有關此跟蹤,因爲你讀,並改變後送回分貝數據行所做的更改。它所做的就是發送所有的字段,而不是僅僅發送更改的字段。
您可以使用時間戳的行。使用其他信息讀取時間戳,並在保存之前檢查當前時間戳(行數)是否比您擁有的時間戳更新。通過這種方式,您可以最大限度地減少鎖定到這個部分,比較時間戳和更新,如果您是第一個到達那裏。
查找「樂觀鎖」 - 基本上就意味着增加一個版本屬性,並傳遞回來,並與更新遞增它,以確保沒有其他人最先到達那裏。如果N個用戶基於相同的版本嘗試相同的操作,則其中一個獲勝,另一個獲勝這對於各種各樣的案例來說都很簡單。
謝謝兩位。將考慮兩個選項:1樂觀鎖定(http://cwiki.apache.org/CAY/optimistic-locking-explained.html)和時間戳方法。
這聽起來像一個RoR的完美應用。如果您沒有太過承諾您的代碼庫,那麼您可能需要考慮切換。 – Justin 2009-08-18 17:58:39