PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
PHP
[請益] 關於劃位系統的概念
作者:
chang0206
(Eric Chang)
2014-06-26 10:08:11
公司內部福委活動有招待看電影
福委會希望我們能寫一個簡單的劃位系統
大概的架構我已經想好
可是在處理同時劃位的部分沒有什麼想法
當A/B同時開啟訂位畫面,畫了重複的位子,又幾乎同時按下送出時
後面按下送出的 update指令會蓋掉前面一位的紀錄
可是兩位都會看到自己劃位成功
請問大概需要怎樣去避免這樣的情況?
作者:
rickysu
(Ricky)
2014-06-26 11:29:00
SQL 有個東西叫做 transaction,請自行 google 吧
作者:
hSATAC
(cAt Ash)
2014-06-26 11:34:00
開一個 google docs 畫座位表讓大家自己填
作者:
MOONRAKER
(㊣牛鶴鰻毛人)
2014-06-26 11:43:00
所有劃位不要立刻執行 放進一個資料表queue用另一支cron在背景每秒鐘從queue取出來執行 成功或失敗寫回queue裡面 前端程式過5秒回來讀取queue看劃位成功沒好對不起真是個爛設計 :P
作者:
Kenqr
(function(){})()
2014-06-26 12:07:00
在update的where條件裡指定位子必須是空的
作者:
crossdunk
(推噓自如)
2014-06-26 12:51:00
先搶先贏吧 @@ 用insert設位子主鍵或是update位子要空的
作者:
vi000246
(Vi)
2014-06-26 13:09:00
送出前判斷有空位才給update
作者:
alog
(A肉哥)
2014-06-26 13:29:00
transaction or table lock; row lock基本上lock table就夠用了不要弄到dead lock即可
作者:
fowei
(小維)
2014-06-26 16:36:00
嗯. 建議用transation
作者:
chang0206
(Eric Chang)
2014-06-26 17:40:00
我也是朝transaction的方向在STUDY 現在的設計在update時,已經會去檢查一個flag,但是還是會發生強碰的情況但是現在碰到的狀況是A/B兩人按下送出,都會滿足條件接著進行後續的update 就算把update這邊改用transcation那是不是說還要在transaction中去檢查?要檢查啥判斷強碰了? 這些都還在想看要怎麼弄 ..
作者:
alog
(A肉哥)
2014-06-28 00:35:00
不可能強碰 除非你寫錯你可以用兩個以上的 mysql client 測試不同的 connection 應該是錯開的不然你用 LOCK TABLE 來處理
作者:
chang0206
(Eric Chang)
2014-06-29 20:55:00
那可以建議一下應該怎麼檢查嗎?
繼續閱讀
[情報] PHP也有Day #4
rickysu
[請益] 在codeigniter裡設file做斷點
youneverknow
[請益] 找不到localhost
joinbee
[請益] 建構子執行順序
m7m123d
[請益] 請問這個函式的參數是什麼意思?
youneverknow
[情報] DrupalCamp 2014 議程徵稿開跑囉!!
cobenash
[請益] 可以使用DZ 3.1登入後與其他網站共用嗎?
mi000731
[情報] Drupal Camp 2014
carrielis
[情報] 臺南市議會網站改造成果 - cakephp
olctw
[請益] 該用curl 還是 header
arnold0613
Links
booklink
Contact Us: admin [ a t ] ucptt.com