關於多人運算元據的處理策略

2021-06-19 19:50:35 字數 603 閱讀 8220

在系統中可能會出現這樣的狀況:

1 對同一條資料,兩人同時進行操作,其人第乙個人想做修改的操作,第二個人想做刪除的操作。第二個人做刪除的操作比第乙個人要快,這時第乙個人修改完成,進行提交時,並不會提示出錯,只會提示0條記錄被修改。

2 對同一條資料,兩人同時進行修改操作,第乙個人先進去修改,然後,第二人個又進去修改,第乙個人改完後提交,第二人也修改完提交,其中第乙個人比第二個人速度快,這樣就造成,二個人修改前讀取的資料是一樣的,而第二人個修改的資料,覆蓋了第乙個人修改的內容,造成第一人的工作白做了。

這樣就造成了資料操作的問題,基於以上問題,我想到以下的方案來解決。

方案一 樂觀鎖機制

在表中增加乙個字段,版本號或時間戳,當第乙個人準備修改資料前,先查出這條資料的版本號或時間戳,前執行修改時,再去庫中查出版本號或時間戳是否與之前一至。如果不一至,提示使用者資料已被改變;如果一至可進行修改,修改時,更新庫中的版本號(增加版本號)或時間戳(最後修改時間)。

方案二 申請操作機制

多人運算元據時,可以建立乙個申請機制,當有人想對某條記錄操作時,需求先申請該條記錄的操作權,申請成功,可以進行修改或刪除的操作,操作成功,則自動釋放該條資料。如果不想操作該條資料,則可以手動釋放,讓別人去做。

關於python django運算元據庫中的表

資料庫中的表示這樣設計的 class c models.model name models.charfield max length 32 class b models.model name models.charfield max length 32 b models.foreignkey c c...

前端運算元據 處理後端資料整理

一.陣列物件不匹配 後端返回資料格式 data 這裡的id返回的型別是string,而你需要的是number型別 data data.map res 輸出 2.後端返回的是name欄位名,而你需要的是username 這裡我們直接複製出乙個新的key就行,舊的key值可以保留也可刪除 不刪除舊key...

前端運算元據 處理後端資料整理

一.陣列物件不匹配 後端返回資料格式 data 這裡的id返回的型別是string,而你需要的是number型別 data data.map res 輸出 2.後端返回的是name欄位名,而你需要的是username 這裡我們直接複製出乙個新的key就行,舊的key值可以保留也可刪除 不刪除舊key...