Saya memiliki masalah ini, saya pikir Anda dapat membantu saya.
PS Saya tidak yakin bagaimana menyebutnya, jadi jika ada yang menemukan judul yang lebih tepat, silakan lakukan edit.
Latar Belakang
- Saya membuat aplikasi ini untuk mencari jalur transit bus.
- Jalur bus adalah angka 3 digit, dan unik dan tidak akan pernah berubah.
- Syaratnya adalah untuk dapat mencari baris dari halte A ke hal B.
- Antarmuka pengguna sudah berhasil mengisyaratkan pengguna untuk hanya menggunakan nama berhenti yang valid.
- Syaratnya adalah untuk dapat menampilkan jika rute memiliki jalur langsung, dan jika tidak, menampilkan kombinasi 2 baris dan bahkan 3 baris.
Contoh:
Saya perlu beralih dari titik A ke titik D. Program harus menunjukkan:
- Jika ada AD jalur langsung.
- Jika tidak, tampilkan alternatif, 2 garis kombo, seperti AC, CD.
- Jika tidak ada kombo 2 garis, cari kombo 3 baris: AB, BC, CD.
Tentu saja, aplikasi harus menampilkan nomor jalur bus, serta kapan harus berganti bus.
Apa yang saya punya:
Basis data saya disusun sebagai berikut (disederhanakan, basis data aktual mencakup lokasi dan waktu dan yang lainnya):
+-----------+
| bus_stops |
+----+------+
| id | name |
+----+------+
+-------------------------------+
| lines_stops_relationship |
+-------------+---------+-------+
| bus_line | stop_id | order |
+-------------+---------+-------+
Di mana lines_stops_relationship
menggambarkan hubungan banyak-ke-banyak antara jalur bus dan halte.
Order, menandakan urutan pemberhentian yang muncul dalam satu baris. Tidak semua baris bolak-balik, dan urutan memiliki makna (titik A dengan urutan 2 datang setelah titik B dengan urutan 1).
Masalah
- Kami mencari tahu apakah garis dapat melewati rute dengan cukup mudah. Cukup cari satu baris yang melewati kedua titik dalam urutan yang benar.
- Bagaimana saya dapat menemukan jika ada kombo 2/3 baris? Saya berpikir untuk mencari jalur yang cocok dengan sumber berhenti, dan satu untuk tujuan berhenti, dan melihat apakah saya bisa mendapatkan perhentian umum di antara mereka, di mana pengguna dapat berganti bus. Bagaimana saya ingat berhenti itu?
- 3 baris kombo bahkan lebih rumit, saya menemukan garis untuk sumber, dan garis untuk tujuan, lalu apa? Cari garis yang memiliki 2 stop, saya kira, tapi sekali lagi, Bagaimana saya ingat berhenti?
tl; dr
Bagaimana saya mengingat hasil dari kueri agar dapat menggunakannya lagi? Saya berharap untuk mencapai ini dalam satu permintaan (untuk masing-masing, permintaan untuk rute 1-line, permintaan untuk 2, dan permintaan untuk kombo 3-line).
Catatan: Saya tidak keberatan jika seseorang menyarankan pendekatan yang sama sekali berbeda dari yang saya miliki, saya terbuka untuk solusi apa pun.
Akan memberikan bantuan apa pun dengan cookie dan upvote. Terima kasih sebelumnya!