作者Adonisy (拍手小安)
看板Database
标题Re: [乱入]来设计高铁资料库吧...
时间Fri Sep 28 21:06:43 2007
昨天在思考了一下之後,发现高铁与台铁与飞机有异同之处
飞机订位是最简单的,因为起迄就一种可能,不会中途有人上飞机和你抢位置
台铁最麻烦(因为台铁站最多),但其实台铁自己有规定,
划位不可能相距的站太近
例如台北买到板桥,柜台不会划座位给你,可能要买到台中才会划座位给你
据报导,高铁在贩售初期,票卖完了,但上高铁後,发现车厢是空的,为何?
我们以台北到左营为例,如果有人买
103次 7:00 开车,由台北坐到左营,划位为第一车箱1号,你可以这样说
1号车厢1号位已经被全包了,因为不可能中途有人和你抢位置
可是如果1车厢1号 是台北到板桥有划位,则板桥还是会有人上来
以高铁的八个站为例,同一个座位共有下列几种可能
台北-->板桥
台北-->桃园
台北-->新竹
台北-->台中
台北-->嘉义
台北-->台南
台北-->左营 (七种可能)
板桥则有6种可能
桃园则有5种可能
新竹则有4种可能
台中则有3种可能
嘉义则有2种可能
台南则有1种可能
左营不可能(没人会从左营坐到左营)
所以,总共是有28种可能
但若以103车次为例
车次 发车时间 板桥 桃园 新竹 台中 嘉义 台南 左营
103 07:00 07:09 - - 07:52 - - 08:36
所有可能的情况是 3+2+1 = 6 种可能
所以座位资讯如果一般车有1000个座位,就要事先保留 28000个坐法
这些在座位资讯实体都可以产生出来,而不用每种可能都事先给位置
台北到板桥预定最少位置,慢慢增加,就可以分散资料
以下为例子:
车站编号 站名
1 台北
2 板桥
3 桃园
4 新竹
5 台中
6 嘉义
7 台南
8 高雄
座位资料表会事先产生以下资料
车次 时间 车厢 座位 经济 靠窗 起站编号 迄站编号 订位否
103 07:00 1 1 1 1 1 2 0
103 07:00 1 1 1 1 1 3 0
103 07:00 1 1 1 1 1 4 0
103 07:00 1 1 1 1 1 5 0
. . .
. . .
103 07:00 1 1 1 1 1 8 0
. . .
. . .
103 07:00 1 1 1 1 7 8 0
如果有甲君,从台北坐到左营,划位为1车厢1座位,则资料库会变成如下:
车次 时间 车厢 座位 经济 靠窗 起站编号 迄站编号 订位否
103 07:00 1 1 1 1 1 2
1
103 07:00 1 1 1 1 1 3
1
103 07:00 1 1 1 1 1 4
1
103 07:00 1 1 1 1 1 5
1
. . .
. . .
103 07:00 1 1 1 1 1 8
1
. . .
. . .
103 07:00 1 1 1 1 7 8
1
因为台北坐到左营,1车厢1号就等於包台,其他27种可能都不会发生,所以订位否这个栏位
自动变成 1
如果某乙只买到板桥呢?
车次 时间 车厢 座位 经济 靠窗 起站编号 迄站编号 订位否
103 07:00 1 1 1 1 1 2
1
103 07:00 1 1 1 1 1 3
1
103 07:00 1 1 1 1 1 4
1
103 07:00 1 1 1 1 1 5
1
. . .
. . .
103 07:00 1 1 1 1 1 8
1
. . .
. . .
103 07:00 1 1 1 1 2 3 0
103 07:00 1 1 1 1 2 4 0
103 07:00 1 1 1 1 7 8 0
只买到板桥,那板桥到其他车站,或其他种情况呢? 就有可能发生,所以请看
绿色那条,同样是1车厢1号,板桥(2)到桃园(3) 就还是没有订位
这样大家就了解,其实我们只是用资料库来记录可能的排位状况而以
那有人会问? 一班车有28000笔记录,那10班车不就28万笔?
不过这些排位资讯,在车开走,到目的後就已经没用了...
另外,网路订票方式,我采用另外一种方法,在网路订票,现场划位
然後再设计出一个资料表,内容如下:
车次 时间 起站编号 迄站编号 剩余座位 商务剩余
103 07:00 1 2 100 5
1 3 150 7
1 4 200 8
. . .
2 3 100 5
2 4 150 7
线上购票时,只要看使用者起站迄站,再查有无剩余座位
如果有,则剩余座位减1,取得购票证明
如果没有,则显示没有空位
当然这个系统,如果不考虑这麽多情况的话,其实是很容易设计的
例如1车厢1号,只要有人买,其他人就再也不能买同位置的票
会比较好设计,但是会造成票务说没票了,可是板桥之後就没人了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.230.162.55
※ 编辑: Adonisy 来自: 125.230.162.55 (09/28 23:29)