Re: [亂入]來設計高鐵資料庫吧...

看板Database (資料庫)作者 (拍手小安)時間17年前 (2007/09/28 21:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
昨天在思考了一下之後,發現高鐵與台鐵與飛機有異同之處 飛機訂位是最簡單的,因為起迄就一種可能,不會中途有人上飛機和你搶位置 台鐵最麻煩(因為台鐵站最多),但其實台鐵自己有規定, 劃位不可能相距的站太近 例如台北買到板橋,櫃台不會劃座位給你,可能要買到台中才會劃座位給你 據報導,高鐵在販售初期,票賣完了,但上高鐵後,發現車廂是空的,為何? 我們以台北到左營為例,如果有人買 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)
文章代碼(AID): #16_FncCg (Database)
文章代碼(AID): #16_FncCg (Database)