2010-05-07 103 views
1

我正在做一個醫生預約老虎機預約​​機制,在醫生預約的時間段裏會分成30分鐘的每個時段...我已經完成了所有的工作代碼..我面臨的問題是1 ..這個預訂是在2個地方,即2個接待..所以當1選擇一個插槽(單選按鈕)尚未確認,並保存在DB.other接待一定不能選擇。如何做到這一點。 ..如何去abt它。老虎機預約​​問題

回答

0

從本質上說,

  • 我只問時隙時序前期,其餘的詳細資料。

  • 如果插槽可用,它會向服務器發送一個請求來鎖定它,以便其他客戶端不能使用它。

  • 如果它不可用,它會收到一個小通知,說明此插槽不可用,請單擊以查看可用插槽。

我會去與AJAX(如果這是一個Web應用程序)。這是一個類似藍軍 - 白軍問題的分佈式系統問題。

1

我會用一些AJAX/AJAJ功能,定期更新關於空閒時隙的數據,或者我會做更簡單 - 節省委任時,只檢查吧,如果這個槽被採取,你的應用程序將用戶重定向到表單以選擇另一個插槽。

0

在表中添加一個「Locked By」字段。 當預訂插槽,這樣做:

UPDATE tablename 
SET LockedBy = userid, ... 
WHERE LockedBy IS NULL 

更新後,您可以選擇是否LockedBy設置爲你的用戶ID。 如果沒有,那麼其他人肯定會毆打你,並且你需要告訴用戶選擇一個不同的插槽。

+0

無法與表更新或在表中插入一列進行異步...單擊單選按鈕時突然發送一些味精到服務器,並做到這一點。 – Hacker 2010-05-07 19:21:42

+0

您可以使用AJAX將來自用戶的請求發送到服務器。但是,您需要一些支持線程安全的原子操作的集中式機制來執行鎖定。數據庫是一個很容易做到的地方,因爲它是以線程安全的方式支持原子操作。 – mbeckish 2010-05-07 19:47:25