[请益] 订票系统的逻辑请教

楼主: CheLiu (劉徹)   2014-11-28 17:21:05
想请教一下
像订位系统的那种
如何防止同时订位的问题
ex:票只剩下5张,却有两组人马同时进系统点选购票
加起来 总共要4+2张
我的想法是
让先进去的先hold住4张
然后对第二组显示只剩一张
等到第一组断线或是取消后再把位子放出来
不过问题在于如果是这样做法
那不就要随时侦测是否还在系统之中?
有更好的做法吗? 请多指教 感谢
作者: Peruheru (还在想)   2014-11-28 17:34:00
保留个三到五分钟没有下订就取消作业如何?威秀的电影票线上划位订购就限制操作时间3分钟逾时就重来,然后就看下一次这些位置谁抢到这样子你只要检查该位子尚未下订,而保留时间已逾时就可以直接当成可用的位置显示给下一组人看完全不用管前端在做啥前端则可以用js等到五分钟就跳回主画面显示操作逾时除非是已经付钱才慢慢划位,不然没必要保留太久
楼主: CheLiu (劉徹)   2014-11-28 17:50:00
那这样后端的部分 要怎么写自动取消的作业PHP 做得到自动吗? 多谢指教><
作者: Peruheru (还在想)   2014-11-28 17:51:00
不用取消阿,检查逾时的字段就当成已取消就好保留时对该位置纪录时间,之后就检查这个时间就知道了下一个人进入订票系统后,你sql去检查那个字段,跟现在时间差超过逾时时间,就当成这位置已释放当然还要检查有没有被下订啦在还没逾时前,别人进系统搜寻就自动过滤未逾时的座位where 位置.时间 - 现在 > 3分钟 && 位置.被预订 = 0这样的条件就可以查出所以目前可显示的空位把 = 0 改成 = 否 整句比较通顺&& 应该是 and XD
楼主: CheLiu (劉徹)   2014-11-28 18:00:00
太感谢了 马上试看看

Links booklink

Contact Us: admin [ a t ] ucptt.com