0

バスのスケジュールが記載されたデータベース(mySQL)があります。ルート、曜日、時間などのユーザー入力に基づいてスケジュールを表示できるようにしたい。バスは1日に少なくとも13回市内を走ります。構造は次のように設定されます。

-Select Route(2 diff routes)
-Select Day(2 set of day, Sun-Wed & Thur-Sat)
-Select Time(atLeast 13 runs per day) = Show Schedule

My table structure is:
p_id,   route     day    run#    stop     time
  1     routeA    m-w      1     stop1   12:00PM
  1     routeA    m-w      1     stop2   12:10PM

..and so on

私は機能するデモを持っていますが、それは非常に非効率的です。可能なすべての実行についてデータベースにクエリを実行します。私はこれを避けたいと思います。

これをより効率的にするためのヒントを誰かに教えてもらえますか?またはいくつかの例を見せてください。

4

1 に答える 1

0

「バスの時刻表のスキーマ設計」をグーグルで検索すると、特定のユースケースに応じて、多くの同様の質問とさまざまな解決策が見つかります。これは、SQL を使用したヒアバス時刻表での同様の質問の 1 つです。

最初に行うことは、データ構造を正規化することです。これにはさまざまなアプローチがありますが、出発点は次のようなものです-

routes(route_id, bus_no, route_name)
stops(stop_id, stop_name, lat/long, etc)
schedule(schedule_id, route_id, stop_id, arrive, depart)

いくつかの検索を行い、サポートされているさまざまなユース ケースと、それらが特定のシナリオにどのように関連しているかを確認する必要があります。上記の例は、大まかな例にすぎません。使用するデータに応じて、さらに細分化することができます。ストップ間の時間を 1 つのテーブルに格納し、ルートの開始時刻を別のテーブルに格納したい場合があります。

于 2012-04-11T13:39:40.543 に答える