我做了一個數據庫系統就在這裏:同時訪問數據庫;保持數據一致在所有連接
(在規範化的意見是高度讚賞,以及 - 我中有你會恨我什麼我tblIsolateSensitivity做了的感覺;只有tblHAIFile有一堆布爾字段和外鍵)。
比方說,我們有x個終端訪問數據庫。 X1編輯患者01,X2編輯患者02,X3同時刪除患者01。我如何確保三個終端之間的數據都是最新且一致的?
此刻,我只在查詢需要完成時才查詢數據(即:當用戶搜索記錄時,或者如果程序需要根據數據庫記錄驗證某些內容),這意味着數據僅與用戶最近的查詢一樣更新。這使得很難確保所有終端上的數據都是最新的。當然,對於刪除的條目,我有錯誤處理來處理,但其餘的,以及...
所以,我的問題是:你們通常如何處理這種情況?是否有這個概念的名稱,以便我可以查找並閱讀很長時間?
謝謝你這麼多詳細的說明!我不得不承認,我正在考慮對數據庫上的記錄進行悲觀併發(不僅僅是因爲我通常是pess-我的意思是現實主義者)。我認爲可能發生的問題是,如果應用程序/數據庫連接崩潰並且記錄被鎖定,直到DBA解鎖所述記錄。 –
@RemiDarren你的評論的最後一句話是沒有問題的。任何嚴重的數據庫系統(如Postgres,MS SQL Server,Oracle等)都會自動釋放任何正常關閉或悲劇失敗的連接所持有的鎖。同樣,由該關閉/失敗連接進行的任何事務都將回滾。這些是數據庫服務器的一些基本職責。 –
@RemiDarren請參閱:[悲觀鎖定和客戶死亡](https://dba.stackexchange.com/q/37225/19079) –