2010-12-01 74 views
2

我創建了一個辦公室調度程序,它使用jQuery發佈到PHP文件,然後將約會插入到pgSQL數據庫中。這還沒有發生,但我可以預見未來這個問題 - 兩名上班族試圖同時安排在同一個位置的預約,造成競爭狀況,並且一組客戶數據將丟失,或至少我必須從日誌中挖出它。我想知道是否有一個我可以在數據庫中設置的標誌,如果我需要創建某種網守程序來控制服務器連接,或者如果有某種互斥/鎖定/信號量,我可以使用javascript/php/SQL來保持這種競爭條件的發生。Ajax/JQuery數據庫訪問/互斥體

回答

3

您可以用數據庫標誌鎖定它,或者更好的策略是檢測碰撞,因爲這隻發生在極少數情況下。

要檢測問題,可以從包含上次更新時間的數據庫中保存時間戳。與表格一起發送,並在更新記錄之前比較時間戳。如果時間戳發生了變化,則向用戶提供所有數據並詢問他們想要做什麼。這爲第二個保存用戶根據以前保存的數據修改其更改提供了一種方法,如果他們願意的話。

還有其他方法可以解決這個問題,適當的解決方案取決於具體問題的性質。

+0

感謝關於時間戳的想法!它很容易實現在我當前的日曆之上。我試試看,然後更新它的結果。 – busbina 2010-12-01 23:16:13