PostgreSQL 与 12306 抢火车票的思考
标签
PostgreSQL , 12306 , 春节 , 一票难求 , 门禁广告 , 数组 , 范围类型 , 抢购 , 排他约束 , 大盘分析 , 广告查询 , 火车票
背景
马上春节了, 火车票又到了销售旺季, 一票难求依旧。
抢火车票是很有意思的一个课题,对IT人的智商以及IT系统的健壮性,尤其是数据库的功能和性能都是一种挑战。
为什么这么说呢,我们一起来缕一缕。
售票系统的需求
铁路售票系统最基本的需求,查询余票、余票统计、购票、车次变化等。
下面分析一下这些需求。
查询余票
你如果要买从北京到上海的火车票,通常会查一下哪些车次还有余票。
过滤条件很多,比如
1. 源、目的、中转站
2. 车次类型
3. 出发时段
4. 到达时段
5. 席别
6. 过滤掉没有余票的车次
输出还要考虑到排序、分页。
查询余票通常不是实时的、或者说不一定是准确的,有可能是分时统计的结
