wayne 发表于 2014-12-18 14:35:15

求 铁路订票系统的最佳设计方案

最佳的方案,额,容我解释一下吧:

1)能满足基本的需求,即能最大程度的满足有效用户的订票需求
2)杜绝 当今 令人深恶痛绝的 “抢票现象”: 最终效果就是 不管是抢票软件的程序化操作也好,还是手工操作也好,效果一样
3)要以人为本。电脑为人服务,而不是人被电脑所控。

3.1) 无数人集中在某一刻蹲在电脑面前操作,然后之后的很长时间订票系统一直处于休眠状态,还是很可笑的。
3.2 )   不能欺骗用户的感情。即眼看有很多票可选,可一旦填了验证码提交请求之后,系统提示说你不在排的队伍里面,见下图:





wayne 发表于 2014-12-18 14:44:45

也许,大家看到我的用词,就差不多知道 我的思路了。 欢迎 大家 讨论。

gxqcn 发表于 2014-12-19 08:33:38

12306订票系统,用过,但都是平时,无需抢票,感觉还好。
在供不应求时,估计就得排队系统,类似于银行那种,取号等待,最终在哪个窗口办理成功并不重要。
而铁路订票系统比之复杂多了,每个人的需求差异太大,同一列车次的资源又是有限的,
要么,参考高考填报志愿的方式,或者操作系统给进程定优先级进行调度,但都很难完美,只能让尽可能多的人感到“公平”而已。
想必楼主已有一点思路,可以改善当前的状况?

数学星空 发表于 2014-12-19 12:45:42

又到了抢票大战的关键时刻,一年比一年头疼+无奈,今年直接就没时间抢票,号称“秒光”

数学星空 发表于 2014-12-20 12:19:19

经过几天日夜守候的奋战终于抢到一张票…不知兄弟们战况如何?

wayne 发表于 2014-12-24 08:38:20

需求 2:杜绝抢票现象

“抢票现象”产生的根源就是 出票方式采取的是 “先到先得” 队列原则
这个原则的弊端就是,相比于程序化订票,那些直接登录12306用鼠标点击进行买票的人由于手工操作,反应时间没有电脑快 ,所以极不公平。

我给出的出票策略就是:先将所有的订票请求都存起来(方便查询的,如哈希结构即可)。然后每隔1分钟,或者5分钟,(足够手工操作所消耗的时间) 统一的出一次。从所有的请求中随机选择固定的数目。而且信息要透明。
例子:
13:00---13:05                     Z67次车,当前有12306次订票请求,将在13:05时刻 随机安排 50张车票。未抽中的用户可在下一个5分钟的时段提交请求。
13:05---13:10                     Z67次车,当前有5006次订票请求,将在13:10时刻 随机安排 50张车票。未抽中的用户可在下一个5分钟的时段提交请求。
13:10---13:15                     Z67次车,当前有5006次订票请求,将在13:10时刻 随机安排 50张车票。未抽中的用户可在下一个5分钟的时段提交请求。
====
在一个出票时段,用户只能提交一次请求。提醒方式:
1)您的请求已经记录,请稍等五分钟(有一个计数器实时显示当前车次的所有订票请求数目,信息要透明啊)
2)您已经提交了订票请求,请稍候,或者点击取消,更改车次。
3)恭喜您,12306人中抽取50人,您被抽中了!
4)抱歉,12306人中抽取50人,您未能抽中,运气不佳,需要再次提交请求吗?再次提交的请求将在下一个5分钟处理。
5)抱歉,余票只有10张,您还要赌一把吗?提交请求,还是换方案?
6)抱歉,该车次已经满员,根据您的始发站和终点站,系统为您推荐了如下车次:1454次,K1212

我这种方案的好处就是 :消灭了程序化订票的优势。
弊端就是: 乘客为了成功订票,可能要折腾几十分钟分钟才能揭晓答案。

还有一种出票方案就是 只允许乘客提交 始发站和终点站。 然后当订票系统 智能优选。 不过这种方案实现起来难度比较大。

mathe 发表于 2014-12-24 20:43:40

铁老大会非常容易内部作弊

wayne 发表于 2014-12-24 21:13:08

好吧。要是这么看待的话,那一切技术都是白搭。
页: [1]
查看完整版本: 求 铁路订票系统的最佳设计方案