2016-07-30 86 views
0

我有成千上萬的旅程,每次旅行都有起點和目的地。我的目標是在每次旅行中實際存儲每個州的行駛里程。 (如果我從丹佛旅行到SLC,我將以一些英里數和UT在一些英里數。存儲數據庫中每次旅行的每個狀態的行程距離

我已經有一個表有開始和結束點,我需要考慮好的架構來存儲數在每個狀態每個行程

思想#1: - 創建1個表trip_id和48列 - > 1對於每個下陸狀態

思想#2: - 與trip_id創建一個表, state_id(+附加位置表),total_miles

解決方案1似乎是在存儲數據(更少的行)方面效率更高,並且我不確定一張表如何處理新表中每個狀態的2百萬次行程+多個條目。

有什麼建議嗎?

回答

0

想法#2聽起來像是一個更好的主意。讓我解釋一些原因。

首先,您對「狀態」的定義可能會發生變化,添加/刪除列非常麻煩。例如,「DC」可能是一個狀態。或者你可能擴大到加拿大。甚至帶來阿拉斯加。將新行添加到表中並不重要。其次,對於簡單的任務,例如爲行程增加總里程,簡單的聚合查詢比添加48列更簡單。

第三,怎麼樣的旅行可能會重新進入一個國家不止一次。想象一下,有人從卡拉馬祖(MI)開往上半島的霍頓(MI)。他們可以非常合理地通過芝加哥的路線,途經MI - > IN - > IL - > WI,然後返回MI。

相關問題