Bana bu konuda yardımcı olabileceğini düşünüyorum.
Not: Bunu nasıl arayacağınızdan emin değilim, bu yüzden daha uygun bir başlık bulursa, lütfen düzenleme yapın.
Arka fon
- Otobüs transit hatları aramak için bu uygulamayı yapıyorum.
- Otobüs hatları 3 haneli bir sayıdır ve benzersizdir ve asla değişmez.
- Gereksinim, A durağından B durağına kadar olan hatları arayabilmektir.
- Kullanıcı arabirimi, kullanıcıyı yalnızca geçerli durma adlarını kullanması için yönlendirmede zaten başarılı.
- Gereksinim, bir rotada doğrudan bir çizgi olup olmadığını görüntüleyebilmeli ve eğer değilse, 2 satırlı ve hatta 3 satırlı bir kombinasyon gösterebilmeli.
Misal:
A noktasından D noktasına gitmem gerekiyor. Program şunu göstermelidir:
- Doğrudan bir hat AD varsa.
- Değilse, alternatif, AC, CD gibi 2 satır kombinasyonlarını görüntüleyin.
- Herhangi bir 2 satırlı kombinasyon yoksa, 3 satırlı kombinasyonları arayın: AB, BC, CD.
Tabii ki, uygulama otobüs hattı numaralarını ve ne zaman otobüs değiştirileceğini göstermelidir.
Neyim var:
Veritabanım aşağıdaki gibi yapılandırılmıştır (basitleştirilmiş, gerçek veritabanı konumları ve saatleri içerir ve ne olursa olsun):
+-----------+
| bus_stops |
+----+------+
| id | name |
+----+------+
+-------------------------------+
| lines_stops_relationship |
+-------------+---------+-------+
| bus_line | stop_id | order |
+-------------+---------+-------+
Burada lines_stops_relationship
otobüs hatları ve duraklar arasındaki çoktan çoğa bir ilişki açıklanmaktadır.
Sıra, durakların tek bir satırda görünme sırasını belirtir. Tüm satırlar ileri geri gitmez ve düzenin anlamı vardır (2 numaralı siparişle A noktası, sipariş 1 ile B noktasından sonra gelir).
Sorun
- Bir hattın rotadan yeterince kolay geçip geçemeyeceğini öğreniyoruz. Her iki noktadan doğru sırayla geçen tek bir satır arayın.
- 2/3 satırlık birleşik giriş olup olmadığını nasıl bulabilirim? Kaynak durağı ve bir hedef durağı ile eşleşen bir çizgi aramayı ve aralarında ortak bir durağı alıp alamayacağımı, kullanıcının otobüsleri değiştirebileceğini görmeyi düşünüyordum. Bu durağı nasıl hatırlarım?
- 3 satır açılan bile daha zor, ben kaynak için bir çizgi ve hedef için bir çizgi bulmak, ve sonra ne? Sanırım 2 durağı olan bir satır ara, ama yine, durakları nasıl hatırlıyorum?
tl; Dr.
Bir sorgunun sonuçlarını tekrar kullanabilmek için nasıl hatırlarım? Ben tek bir sorguda (her biri için 1 satır rotaları için bir sorgu, 2 için bir sorgu ve 3 satır kombinasyonları için bir sorgu) elde etmeyi umuyorum.
Not: Birisi sahip olduğumdan tamamen farklı bir yaklaşım önerirse umursamıyorum, herhangi bir çözüme açığım.
Bir çerez ve bir oylama ile herhangi bir yardım verir. Şimdiden teşekkürler!