2015-04-05 65 views
0

我創建了一個以VB.NET和MySQL爲數據庫的咖啡銷售系統。如何處理併發(多用戶編輯相同的數據) - VB.NET特色MySQL

在該系統中,用戶可以更新自己的信息,如名字,姓氏,BOD等

然而,多個用戶可以編輯目前在同一時間同一數據集,我需要避免。

例如:當添加一個收銀員的姓名和想改變它,在同一時間,收銀員要改變它,也

HRD出現了拼寫錯誤。

我想在這裏做的是當他在編輯模式下打開他的數據時通知收銀員其他人已經在編輯他的數據,例如,通過顯示「您的數據正在編輯」。

我讀過,我可以通過鎖定表格,行等來做到這一點,然而,很多人說這是一個壞的方法來解決這個問題。

我在尋找替代的,基於代碼的解決方案的建議。

我用我的母語(印度尼西亞語)做了一些搜索,只有幾個人寫這篇文章,沒有給我帶來什麼。

回答

0

這樣做的一個好方法是在行上存儲updated_at timestamp值,然後在選擇要編輯的記錄時檢索該值。

當您更新時,使其取決於updated_at匹配。如果沒有行更改,則向客戶端返回記錄已更改的錯誤,併爲他們提供比較更改的選項。儘量避免把所有的變化都拋棄掉,這會讓你的用戶瘋狂。

+0

嗯,所以我認爲時間戳會成爲當前的答案,但我希望,我將有一些事情做,而不做數據庫的事情。 – Rizaldy 2015-04-06 18:08:57

+0

通常,唯一的好辦法是做一些數據庫更改。 – 2015-04-07 22:21:28

+0

我實現了時間戳和用戶ID,但是當用戶點擊同一秒鐘時,我仍然遇到了一個問題,即運行一個將在數據庫上創建記錄的ajax。我結束了雙記錄。 – 2017-09-13 14:13:08

相關問題