2016-07-30 5 views
0

私には何千もの旅行があり、各旅行には出発地と目的地があります。私の目標は、実際に旅行ごとに各州に旅行したマイルを保管することです。 (デンバーからSLCに向かう場合、私はCOで数マイル、UTで数マイルで終わります。データベース内の1回の移動ごとに移動距離を格納

私はすでに出発点と終了点を持っているテーブルを持っています。私は良い建築について考える必要があります。状態ごとに各旅行でマイル

アイデア#1: - trip_idと48列を持つ1つの表の作成 - 各下大陸国家のために> 1を

アイデア#2:。 - trip_idを持つテーブルを作成し、 state_id(場所を含む追加のテーブル)、total_miles

解決策1データを保存するのが効率的です(行が少なくなります)。新しいテーブルでは、1つのテーブルが2百万回のトリップ+状態ごとの複数のエントリを処理する方法がわかりません。

提案がありますか?

答えて

0

アイデア#2ははるかに良いアイデアのようです。いくつかの理由を説明しましょう。

まず、「状態」の定義が変更され、列の追加/削除が非常に面倒です。たとえば、「DC」は状態です。あるいは、カナダにも広がるかもしれません。あるいは、アラスカを連れていってください。テーブルに新しい行を追加するのは簡単です。

第2に、旅行の合計マイルを合計するなどの簡単な作業では、単純な集計クエリは48+の列を追加するよりはるかに簡単です。

第3に、複数回州に再入国する可能性のある旅行についてはどうでしょうか。 Kalamazoo(MI)から上半島のHoughton(MI)まで車で走っている人を想像してみてください。彼らは非常に合理的にシカゴ経由でMI→IN→IL→WIを経てMIに戻ることができます。

関連する問題