Re: [亂入]來設計高鐵資料庫吧...
昨天在思考了一下之後,發現高鐵與台鐵與飛機有異同之處
飛機訂位是最簡單的,因為起迄就一種可能,不會中途有人上飛機和你搶位置
台鐵最麻煩(因為台鐵站最多),但其實台鐵自己有規定,
劃位不可能相距的站太近
例如台北買到板橋,櫃台不會劃座位給你,可能要買到台中才會劃座位給你
據報導,高鐵在販售初期,票賣完了,但上高鐵後,發現車廂是空的,為何?
我們以台北到左營為例,如果有人買
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)
討論串 (同標題文章)
完整討論串 (本文為第 4 之 4 篇):
1
1
Database 近期熱門文章
PTT數位生活區 即時熱門文章