为了账号安全,请及时绑定邮箱和手机立即绑定

比火车票复杂的数据库设计方案?

比火车票复杂的数据库设计方案?

慕娘9325324 2019-02-26 17:42:12
最近要做一个系统, 有点类似售卖火车票的概念,但是能选座,大概也是卖了长途的票,同一条线的短途余票也会扣除库存. 但是比这个还要复杂一点.比如我要卖高铁票,京广线,需求如下:可以选座位, 客户端可以提前知道买票人的信息(肤色)卖出去北京-上海的票之后, 北京-广州的库存就要减一, 但是上海-广州的票不受影响(其他情况类似,路途有交叉的票都不能再卖了)这趟车每个座位都可以坐5个人,但是这5个人的肤色必须相同,比如3车8F这个座位可以坐5个白人,或者5个黑人. 第一个买这个座位的人决定这个座位能坐什么肤色的人. 假如第一个买到3车8F座位的人是黄种人, 那么黑种人或者白种人去买票的时候就看不到这个座位了,但是其他黄种人还是可以选的.要保证客户端查询余票的效率想过很多种方案,要么查询效率不够高,要么数据不好维护. 总有一种感觉, 自己知识面不够,可能自己想复杂了,在懂行的人来说可能就是一个算法的事....之前请教过一个会数学建模的人,只是让我去看线性规划,百度半天实在看不懂! 还请大神不吝赐教~ 给点思路或者方向都行....Orz
查看完整描述

2 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

把所有车票打撒呢?
比如车从1号站始发,到5号站结束,也就是1-2-3-4-5:1,冒号1的意思是绑定座位号,100个位子即1-100
打撒后视为有4张票,也就是1-2:12-3:13-4:14-5:1
如果列车有100个座位,那就可以认为有100*4=400张票

如果某人要做1-3的话,就看1-2和2-3的票数量是否都大于1并且座位号相同,是的话,就卖票,票面上写1-3和座位号,并且后台对应座位号的1-2和2-3都减1
假设当2-3的票数量为0的时候,买1-4的票就失败了,但还是能买3-4的票

关于肤色,那就是座位号与肤色绑定,一开始肤色和座位号没有绑定,一旦购票成功,座位号与肤色就绑定了,以后再有人来买票,可分配的座位筛选条件为(未绑定肤色的座位和绑定了指定肤色的座位)


查看完整回答
反对 回复 2019-03-03
  • 2 回答
  • 0 关注
  • 557 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信