バス停のクエリデータベーススキーマを設計する方法
バス停のデータがあるので、特定の開始駅と終了駅に線/複数線を提供するアプリケーションを作成したいと考えています。 たとえば、ユーザーがステーション1からステーション2へのバス路線の候補を取得しようとします。 station1との両方をカバーできるバスラインがある場合station2、このラインを返す必要があります。結果は次のようになります。 Step1: station1 -- station2 ステーション1とステーション2の間に直接バス路線がない場合、アプリケーションは交換計画を見つけようとします。たとえば、結果は次のようになります。 Step1: station1 -- exchangestation Step2: exchangestation -- station2 これでデータは取得できましたが、データベースでデータモデルを設計する方法、クエリを効率的にするためのスキーマを作成する方法がわかりません。 ============================================= 更新: たとえば、バスのラインは4つ(実際には2つ)あり、それぞれ色が異なります。 l1: A-B-C-D l2: D-B-A (in fact, the l2 is the reverse of l1 except the l2 will skip station `C`. l3: E-B-D-F l4: F-D-B-E(reverse of l3) 次に、これらの情報をデータベースに保存して、ある駅から別の駅へのバス路線計画を照会する場合、必要なテーブルの数と、各テーブルに何を配置する必要があるのでしょうか。