通常在需要参加预约业务或者排队活动的场景中,为了避免⽤户耐⼼消耗问题,会给⽤户⼀个号,让他知道⾃⼰⽬前排的位置,好计算等待时间,如果前⾯⼈太多,他可以先去逛街或者处理其他的事情,等到⾃⼰的时候再回来处理这个业务。很明显的是银⾏的挂号排队业务,医院的挂号排队业务等。下⾯给个⽰例图 这个图是前同事去某个机关单位的排队业务⽽产⽣的单号,很明显可以看到前⾯还有很多⼈,今天排号是203号,这个很好理解,采⽤⾃增即可,不过您前⾯有多少⼈在等待这个就稍微要动动脑筋来设计了。 那么如何在记录产⽣的时候告知⽤户你前⾯还有多少⼈在排队呢? 我们做⼀个简单的例⼦
某记录表 record
⾃增id ⽤户id ⽤户名 ⽤户参与的数据 ⽤户备注 添加时间 是否处理 排名
iduser_id user_name content remark add_time is_handle rank
1、记录创建时确定排前⾯的有多少⼈
可以通过在记录添加的时候count⽬前还有多少⼈在等待办理
插⼊数据的时候
select count(id) from record where is_handle=0;
得到这个数据 放⼊rank 字段。可以得到该⽤户前⾯还有多少⼈在排队(is_handle字段 0代表未处理 1代表已经处理 )
2、延迟的获取排在前⾯的有多少⼈
记录可以先加进数据库,然后根据返回的insert_id获取当前记录前⾯还有多少⼈,然后进⾏更新rank字段
先插⼊数据add_data获取我的记录id,然后查询我前⾯还有多少⼈select count(id) from record where is_handle=0 and id银行排队叫号系统
然后更新我的前⾯还有多少⼈update record set rank=获取排在我前⾯还有多少⼈ where id=我的记录id;
这样做的好处是分两步操作,延迟的获取⽤户前⾯排队的还有多少⼈等待。
为什么要这么做呢?请仔细思考⼀下 然后给我评论吧