找错了实体的12306

liangshan 14-11-13
    

12306并没有想办法出来去忽悠大家,是咱们自己把自己忽悠住了。

也没有想象的那么复杂啊,某列车一共1000个座位每站最多卖1000张票,每一个站初始都是1000张票,任何一个站卖掉任何一张票时都把这张票的“始站”到“目的站”的左闭右开空间中的站的余票减1。每一站至多卖出去1000张票。那个商品是“座位”,并不是众多的上下站的组合。卖的是座位,只要有空位就可以卖。卖票时根本不用考虑你的目的站是哪!即使站短的只能买站立票那也只是加上去一点点简单的逻辑啊。

这根本就没有多么大量的计算和IO,一列车从始发站到终点站又能经过多少站呢?顶多几十个而已,即使不做任何优化,访问几十次数据库又能如何。
每一列车上的票完全可以一张一张的卖,系统就只一张一张的计算就可以了,要都挤在一个时刻买票的话那就排队就可以了,反正系统一张一张的卖是能卖的及时的。12306并没有想办法出来去忽悠大家,是大家自己把自己忽悠住了。
[该贴被anycmd于2014-11-13 22:49修改过]
[该贴被anycmd于2014-11-13 22:50修改过]


    

liangshan
2014-11-14 09:24

【“关键是要与座位号对应,假如一节车厢定员108人,那就是有108个座位。西安到海口的车,假如我买了武汉到广州的票,那么并不是简单的武汉-广州区间内减一,而是指定的座位减一。

不是有空位就能卖,假如说6车厢的036号座位在西安站是空的,但是在下一站却已经有人买了,单纯的判断这个站为空不行吧”】

--- 共有 1 条评论 ---
有道理。补充的好,判断有没有票改成判断上车站到下车站是不是每一站都有空位。如果都有空位再定位那个共同的空位。