Ich bin der Gestaltung eines Busfahrplan mit SQL. Jede Buslinie verfügt über mehrere Stationen, muss ich eine andere Tabelle für jede Route?

StackOverflow https://stackoverflow.com/questions/2503759

  •  21-09-2019
  •  | 
  •  

Frage

Ich versuche, mit der effizientesten Datenbank wie möglich zu kommen. Meine Buslinien alle über 10 Stationen haben. Der Bus startet bei Nummer eins bis zum Anschlag 10. erreicht, dann ist es wieder zurückkommt. Dieser Zyklus geschieht 3 mal am Tag.

Ich bin wirklich so zu stecken, wie ich die Zeiten für die Busse effizient erzeugen kann und wo ich die Stationen gespeichert werden soll. Wenn ich alle Register in einem Feld und die Zeiten in einem anderen setzen, wird die Datenbank nicht sehr dynamisch sein.

Wenn ich speichern alle eins nach dem anderen in einer Spalte stoppt und dann die Zeiten, in einer anderen Spalte, wird es eine Menge passieren zu wiederholen weiter nach unten als eine Station mehrere Male hat.

Vielleicht etwas, was ich bin fehlt, habe ich gerade erst begonnen SQL lernen und das ist eine Aufgabe, die wir gesetzt wurden.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Sie werden eine Tabelle benötigen, die Ihre Timetable enthält:

  • Route ID
  • Stop ID
  • Zeit
  • Eventuell andere Felder nach Bedarf (Richtung, Folge # 's, Block # usw.)

Ich würde empfehlen, separate Tabellen Bus Stop Erstellung (zum Speicher Stopp Namen, lat / Long-Positionen, etc.) und Route (zum Speichern von Routennamen, erster Station, letzte Station, Richtung, usw.).

Sie sind wahrscheinlich bewusst ist schon, aber Bus Terminierung kann sehr schnell kompliziert. Zum Beispiel:

  • Sie können bestimmte Stationen als „Zeitpunkte“ bezeichnen müssen, die in den gedruckten Pläne zeigen

  • kann jeder Strecke mehrere Varianten aufweisen. Zum Beispiel bei einer anderen Bushaltestelle

  • beginnen oder enden können einige Versionen
  • Der Zeitplan wird wahrscheinlich anders sein am Samstag und Sonntag, und die meisten Agenturen ihre Zeitpläne ändern vierteljährlich

Sie müssen möglicherweise einige dieser Fälle betrachten, und bauen sie in Ihr Schema.

Enthält das helfen?

Andere Tipps

Hier ist nur eine (von vielen) Möglichkeiten, dies zu tun:

Es klingt wie Sie wahrscheinlich eine routes Tisch haben wollen, die jede Route beschreibt, und hat eine Startzeit.

Dann wird eine stops Tabelle mit Beschreibungen und Wartezeiten für den Bus an jeder Haltestelle.

Ein stopDistanceMapping Tabelle den Abstand zwischen zwei Stationen beschreiben würde, und die Fahrzeit zwischen ihnen.

Schließlich wird Ihre routeMap Tabelle verknüpft einzelne routes mit einer Liste von stops. Sie können dann Ihre routes Tisch Entfernung und Zeit bei der Verwendung der Wartezeit von jedem einzelnen Stopp, und die Zeiten / Entfernungen von stopDistanceMapping füllen.

Viel Glück!

Auf einem (sehr grob) 1. Durchgang, würde ich die Buslinie mal in einer Tabelle wie folgt halten:

RouteID StartingLocationID  EndingLocationID TravelTime

Auch würde ich eine Tabelle der Anschläge halten wie:

StopID Address City etc... (whatever other information you need about each location)

Für die Routen selbst ich würde speichern:

RouteID StartingLocationID RouteStartTime

Natürlich sollten Sie zuzuschneiden diese an Ihre eigenen Bedürfnisse, aber das sollte man einen Platz geben zu beginnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top