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