最近要做一个系统, 有点类似售卖火车票的概念,但是能选座,大概也是卖了长途的票,同一条线的短途余票也会扣除库存. 但是比这个还要复杂一点.比如我要卖高铁票,京广线,需求如下:
- 可以选座位, 客户端可以提前知道买票人的信息(肤色)
- 卖出去
北京-上海
的票之后,北京-广州
的库存就要减一, 但是上海-广州
的票不受影响(其他情况类似,路途有交叉的票都不能再卖了) - 这趟车每个座位都可以坐5个人,但是这5个人的肤色必须相同,比如
3车8F
这个座位可以坐5个白人,或者5个黑人. 第一个买这个座位的人决定这个座位能坐什么肤色的人. 假如第一个买到3车8F
座位的人是黄种人, 那么黑种人或者白种人去买票的时候就看不到这个座位了,但是其他黄种人还是可以选的. - 要保证客户端查询余票的效率
想过很多种方案,要么查询效率不够高,要么数据不好维护. 总有一种感觉, 自己知识面不够,可能自己想复杂了,在懂行的人来说可能就是一个算法的事....之前请教过一个会数学建模的人,只是让我去看线性规划,百度半天实在看不懂! 还请大神不吝赐教~ 给点思路或者方向都行....Orz
为避免种族歧视之嫌,我们只讨论站点吧。
题主在站点上的设计是有问题的,拿
北京-郑州-广州
举例(火车从北京到广州是不可能经过上海的),客人选了北京-广州
的班次,但买的是北京-郑州
段,那么:北京-郑州
段有没有库存,有的话就减1;北京-汉口
,这样会北京-汉口
的库存减1,同时郑州-汉口
的库存加1。