Kami memiliki data stasiun bus, dan kami ingin membangun aplikasi yang akan menyediakan jalur / banyak jalur untuk stasiun awal dan stasiun akhir yang diberikan.
Misalnya pengguna mencoba untuk mendapatkan saran jalur bus dari station1 ke station2.
Jika ada jalur bus yang dapat menutupi keduanya station1
dan station2
, jalur ini harus dikembalikan. Hasilnya mungkin terlihat seperti ini:
Step1: station1 -- station2
Jika tidak ada jalur bus langsung antara station1 dan station2, maka aplikasi harus mencoba menemukan rencana pertukaran, misalnya, hasilnya mungkin terlihat seperti ini:
Step1: station1 -- exchangestation
Step2: exchangestation -- station2
Sekarang kita memiliki data, tetapi kita tidak tahu bagaimana mendesain model data dalam database, bagaimana membuat skema untuk membuat kueri efisien?
=============================================
Memperbarui:
Sebagai contoh, saya memiliki empat jalur bus (sebenarnya dua) masing-masing dengan warna yang berbeda:
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)
Sekarang jika kita ingin menyimpan informasi ini dalam database untuk menanyakan rencana jalur bus untuk diberikan satu stasiun ke stasiun lain, lalu berapa tabel yang kita butuhkan, dan apa yang harus dimasukkan ke dalam setiap tabel?