2012-02-07 72 views
1

這是共享數據的常見問題。共享數據之間的衝突

因爲我建立一個系統,允許用戶分享他們的郵件列表,他們的同事。

我懷疑有當用戶A打開網頁,用戶B 打開同一網頁和用戶編輯後的數據, 一個編輯的數據,並提交與用戶B的變化會取消的問題。

由於我使用PHP,是他們沒有辦法阻止這種錯誤的???謝謝

在php/jquery中提供了任何編碼示例嗎?非常感謝

回答

1

使版本日誌,所以用戶A將更新conent版本。 123到ver。 124,用戶B也會嘗試更新版本。 123以他自己的方式,但在服務器上已經是ver了。 124,因此您將向用戶B顯示消息,該內容最近由其他用戶修改。

這個principe用在SVN中。

+0

維基百科(和其他維基)也以這種方式工作。儘管如此,合併可能會非常棘手。 – 2012-02-07 09:45:06

+0

有沒有在php/jquery中提供的任何編碼示例?非常感謝 – user782104 2012-02-07 09:51:47

+0

很難做出例子,因爲它是對數據模型和代碼的更改 – SergeS 2012-02-07 10:21:05

0

有幾個解決方案。 最簡單的方法是在數據庫上有一個「鎖定」字段,當某人正在查看某個頁面時該字段被設置爲true,並且在鎖定時拒絕其他人進入該頁面。這不是一個好主意,因爲當有人離開頁面時很難捕捉到,所以頁面可能永遠保持鎖定狀態。

您可以通過使用一個小AJAX調用將消息發送到服務器以鎖定頁面每隔十秒鐘左右避開這一問題,並在頁面鎖定具有三十二分之一時間限制。

也許最好方法(儘管這取決於系統)是使用AJAX來動態重新加載該頁面的部件當它們由另一用戶編輯(和將消息旁邊時,他們編輯),並警告兩個用戶是否同時編輯相同的字段。

+0

我認爲在我的系統中,我不必像維基級別那樣實現?因爲這只是一個包含幾個字段的郵件列表。 – user782104 2012-02-07 10:04:58