c********l 发帖数: 8138 | 1 在乘客已经上火车之后,中途换座is unacceptable
在绿皮车时代,大包小包行李,而且走道还有人,根本不可能换座
现在在动车高铁时代,既然不是始发站或者终点站,那么火车停靠的时间可能只有
1分钟,而且很有可能让乘客从车头跨越6节车箱到车尾。
1分钟的时间,连抽烟都不可能,打火机都点不起来。更别提让人换座了
另外,从用户体验的角度出发:
买了票,就相当于乘客和铁道公司之间有了一个contract,
公司有责任不损害用户体验。
如果没买票,铁道公司没有为用户的义务。
换句话,买不上票,或者买票在浏览器前的延时,只能说铁老大“不好”,
但无法因此投诉铁老大。
此外,在任何一个国家,都没有中途下车换座的先例。
总之单人次单座位是bottom line。。
一个折衷是:
买票的时候不指定座位,只有checkin(对应的就是取票)之后才知道座位号
就好比飞机一样。
实在不行,只有照目前这样,按照车次/日期划分服务器集群,
每天每车次只有一个服务器负责排座,一个车次,有多少个座位,就按照这些
座位直接在内存中开数组/or 数据库纪录。
虽然单机性能降低,但可以通过多搞几台服务器补偿。
这些服务器甚至可以直接是xeon server |
L*****e 发帖数: 8347 | 2 没戏。飞机没有中间站的上上下下,而一次列车的一个座位是空还是被占是变化的。
先出票,随后确定座位的话,必然会出现conflicts,要么没法满足不换座,要么某些
票得作废。。。
【在 c********l 的大作中提到】 : 在乘客已经上火车之后,中途换座is unacceptable : 在绿皮车时代,大包小包行李,而且走道还有人,根本不可能换座 : 现在在动车高铁时代,既然不是始发站或者终点站,那么火车停靠的时间可能只有 : 1分钟,而且很有可能让乘客从车头跨越6节车箱到车尾。 : 1分钟的时间,连抽烟都不可能,打火机都点不起来。更别提让人换座了 : 另外,从用户体验的角度出发: : 买了票,就相当于乘客和铁道公司之间有了一个contract, : 公司有责任不损害用户体验。 : 如果没买票,铁道公司没有为用户的义务。 : 换句话,买不上票,或者买票在浏览器前的延时,只能说铁老大“不好”,
|
c********l 发帖数: 8138 | 3 你没明白原文的递进关系。其实你的出发点和我是一样的
飞机没有中间站,尚且需要check in时分配大部分座位
(航空公司其实discourage在购票时选座位,最典型的就是united economy plus)
那么火车,为了避免中途换座,更需要越推迟分配座位越好
既然连推迟分配座位都无法解决问题,那就只有按现有的,开大数组,
而不是用占用内存少的“计数器”
我的point:
1中途换座是unacceptable的
2情愿牺牲一点performance,也需要优先满足functional requirement
【在 L*****e 的大作中提到】 : 没戏。飞机没有中间站的上上下下,而一次列车的一个座位是空还是被占是变化的。 : 先出票,随后确定座位的话,必然会出现conflicts,要么没法满足不换座,要么某些 : 票得作废。。。
|
b*******g 发帖数: 603 | 4 不分好座位,先订好之后没有分的办法。这就是为什么必须处理的时候就得分。
发信人: goodbug (好虫), 信区: Programming
标 题: 再举个测试用例。
发信站: BBS 未名空间站 (Wed Feb 5 04:17:26 2014, 美东)
假定一趟车经过ABCD四个地方,为简单举例,假定只有一个100人的车厢。在B加挂一个
200人的车厢,到C后撤掉。
最后客满,得ABC 票100张,BCD票100张,BC票100张。
A B C D
100 100 100
200
按照太监只管抢票不分座位的策略,请给个出票不用换座位的方案吧。别跟我说一个车
次还俩号。
【在 c********l 的大作中提到】 : 在乘客已经上火车之后,中途换座is unacceptable : 在绿皮车时代,大包小包行李,而且走道还有人,根本不可能换座 : 现在在动车高铁时代,既然不是始发站或者终点站,那么火车停靠的时间可能只有 : 1分钟,而且很有可能让乘客从车头跨越6节车箱到车尾。 : 1分钟的时间,连抽烟都不可能,打火机都点不起来。更别提让人换座了 : 另外,从用户体验的角度出发: : 买了票,就相当于乘客和铁道公司之间有了一个contract, : 公司有责任不损害用户体验。 : 如果没买票,铁道公司没有为用户的义务。 : 换句话,买不上票,或者买票在浏览器前的延时,只能说铁老大“不好”,
|
L*****e 发帖数: 8347 | 5 我明白你的意思,但是因为有中间站的问题,火车起点发车了,中间某站还能继续售票
呢,所以严格讲火车就没法在发车前拿到全局订票结果。
还有一个就是,一趟飞机顶多三两百人,一趟火车好几千人,加上中途上下的人次就更
多。飞机你可以在办理登记手续时确认座位,乘火车的这好几千人你最晚什么时候给他
们确认座位?到了火车站再去一个个确认座位?
你要处理的东西数量变了10倍,解决方法就可能被从根本上改变。。。
【在 c********l 的大作中提到】 : 你没明白原文的递进关系。其实你的出发点和我是一样的 : 飞机没有中间站,尚且需要check in时分配大部分座位 : (航空公司其实discourage在购票时选座位,最典型的就是united economy plus) : 那么火车,为了避免中途换座,更需要越推迟分配座位越好 : 既然连推迟分配座位都无法解决问题,那就只有按现有的,开大数组, : 而不是用占用内存少的“计数器” : 我的point: : 1中途换座是unacceptable的 : 2情愿牺牲一点performance,也需要优先满足functional requirement
|
c********l 发帖数: 8138 | 6 你说的是对的,这更证明只能老老实实用死办法做。
【在 L*****e 的大作中提到】 : 我明白你的意思,但是因为有中间站的问题,火车起点发车了,中间某站还能继续售票 : 呢,所以严格讲火车就没法在发车前拿到全局订票结果。 : 还有一个就是,一趟飞机顶多三两百人,一趟火车好几千人,加上中途上下的人次就更 : 多。飞机你可以在办理登记手续时确认座位,乘火车的这好几千人你最晚什么时候给他 : 们确认座位?到了火车站再去一个个确认座位? : 你要处理的东西数量变了10倍,解决方法就可能被从根本上改变。。。
|