Ich habe dieses Problem, ich denke, Sie können mir dabei helfen.
PS: Ich bin mir nicht sicher, wie ich das nennen soll. Wenn also jemand einen passenderen Titel findet, bearbeite ihn bitte.
Hintergrund
- Ich mache diese Anwendung für die Suche nach Buslinien.
- Buslinien haben eine dreistellige Nummer und sind eindeutig und werden sich nie ändern.
- Die Anforderung besteht darin, in der Lage zu sein, nach Zeilen von Haltestelle A bis Haltestelle B zu suchen.
- Die Benutzeroberfläche weist den Benutzer bereits erfolgreich darauf hin, nur gültige Stoppnamen zu verwenden.
- Voraussetzung ist, dass angezeigt werden kann, ob eine Route eine direkte Linie hat. Andernfalls wird eine Kombination aus zwei und sogar drei Linien angezeigt.
Beispiel:
Ich muss von Punkt A nach Punkt D kommen. Das Programm sollte zeigen:
- Wenn es eine direkte Linie AD gibt.
- Wenn nicht, zeigen Sie alternative zweizeilige Combos an, z. B. AC, CD.
- Wenn keine 2-zeiligen Combos vorhanden sind, suchen Sie nach 3-zeiligen Combos: AB, BC, CD.
Natürlich sollte die App Busleitungsnummern sowie den Zeitpunkt des Buswechsels anzeigen.
Was ich habe:
Meine Datenbank ist wie folgt aufgebaut (vereinfachte, aktuelle Datenbank enthält Orte und Zeiten und so weiter):
+-----------+
| bus_stops |
+----+------+
| id | name |
+----+------+
+-------------------------------+
| lines_stops_relationship |
+-------------+---------+-------+
| bus_line | stop_id | order |
+-------------+---------+-------+
Wo lines_stops_relationship
beschreiben Sie eine Viele-zu-Viele-Beziehung zwischen den Buslinien und den Haltestellen.
Reihenfolge, bezeichnet die Reihenfolge, in der Stopps in einer einzelnen Zeile angezeigt werden. Nicht alle Zeilen gehen vor und zurück, und die Reihenfolge hat Bedeutung (Punkt A mit der Reihenfolge 2 kommt nach Punkt B mit der Reihenfolge 1).
Das Problem
- Wir finden heraus, ob eine Linie die Route leicht genug passieren kann. Suchen Sie einfach nach einer einzelnen Linie, die beide Punkte in der richtigen Reihenfolge durchläuft.
- Wie kann ich feststellen, ob es eine 2/3 Zeilen-Kombination gibt? Ich überlegte, nach einer Linie zu suchen, die mit der Ausgangshaltestelle und der Zielhaltestelle übereinstimmt, und zu prüfen, ob zwischen ihnen eine gemeinsame Haltestelle besteht, auf der der Benutzer den Bus wechseln kann. Wie kann ich mich an diesen Stopp erinnern?
- Die 3-Zeilen-Kombination ist noch kniffliger. Ich finde eine Zeile für die Quelle und eine Zeile für das Ziel. Und was dann? Suchen Sie nach einer Linie mit 2 Haltestellen, aber wie kann ich mich an die Haltestellen erinnern?
tl; dr
Wie erinnere ich mich an die Ergebnisse einer Abfrage, um sie wieder verwenden zu können? Ich hoffe, dies in einer einzigen Abfrage zu erreichen (jeweils eine Abfrage für 1-Zeilen-Routen, eine Abfrage für 2 und eine Abfrage für 3-Zeilen-Combos).
Hinweis: Es macht mir nichts aus, wenn jemand einen völlig anderen Ansatz vorschlägt als den, den ich habe. Ich bin offen für Lösungen.
Unterstützt Sie mit einem Cookie und einer positiven Bewertung. Danke im Voraus!