素材牛VIP会员
比火车票复杂的数据库设计方案?
 Ho***95  分类:JavaScript  人气:701  回帖:1  发布于6年前 收藏

最近要做一个系统, 有点类似售卖火车票的概念,但是能选座,大概也是卖了长途的票,同一条线的短途余票也会扣除库存. 但是比这个还要复杂一点.比如我要卖高铁票,京广线,需求如下:

  1. 可以选座位, 客户端可以提前知道买票人的信息(肤色)
  2. 卖出去北京-上海的票之后, 北京-广州的库存就要减一, 但是上海-广州的票不受影响(其他情况类似,路途有交叉的票都不能再卖了)
  3. 这趟车每个座位都可以坐5个人,但是这5个人的肤色必须相同,比如3车8F这个座位可以坐5个白人,或者5个黑人. 第一个买这个座位的人决定这个座位能坐什么肤色的人. 假如第一个买到3车8F座位的人是黄种人, 那么黑种人或者白种人去买票的时候就看不到这个座位了,但是其他黄种人还是可以选的.
  4. 要保证客户端查询余票的效率

想过很多种方案,要么查询效率不够高,要么数据不好维护. 总有一种感觉, 自己知识面不够,可能自己想复杂了,在懂行的人来说可能就是一个算法的事....之前请教过一个会数学建模的人,只是让我去看线性规划,百度半天实在看不懂! 还请大神不吝赐教~ 给点思路或者方向都行....Orz

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv1 新人
ba***ag UI设计师 6年前#1

为避免种族歧视之嫌,我们只讨论站点吧。

题主在站点上的设计是有问题的,拿北京-郑州-广州举例(火车从北京到广州是不可能经过上海的),客人选了北京-广州的班次,但买的是北京-郑州段,那么:

  • 首先看北京-郑州段有没有库存,有的话就减1;
  • 如果没有该段库存,那么找最短的包含该段的库存,例如北京-汉口,这样会北京-汉口的库存减1,同时郑州-汉口的库存加1。
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取