Sto progettando un orario degli autobus utilizzando SQL.Ogni linea di autobus ha più fermate, ho bisogno di una tabella diversa per ogni linea?

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

  •  21-09-2019
  •  | 
  •  

Domanda

Sto cercando di creare il database più efficiente possibile.Le mie linee di autobus hanno tutte circa 10 fermate.L'autobus parte dalla numero uno fino alla decima fermata, poi ritorna indietro.Questo ciclo avviene 3 volte al giorno.

Sono davvero bloccato su come generare in modo efficiente gli orari degli autobus e dove dovrei memorizzare le fermate.Se metto tutte le fermate in un campo e i tempi in un altro, il database non sarà molto dinamico.

Se memorizzo tutte le fermate una per una in una colonna e poi i tempi in un'altra colonna, si verificheranno molte ripetizioni più in basso poiché una fermata ha più volte.

Forse mi manca qualcosa, ho appena iniziato a imparare SQL e questo è un compito che ci è stato assegnato.

Grazie in anticipo.

È stato utile?

Soluzione

Avrai bisogno di una tabella che contenga il tuo Timetable:

  • Identificativo del percorso
  • Ferma l'identificazione
  • Tempo
  • Possibilmente altri campi secondo necessità (direzione, sequenza #, blocco #, ecc.)

Consiglierei di creare tabelle separate Bus Stop (per memorizzare nomi di fermate, latitudine/longitudine, ecc.) e Route (per memorizzare il nome del percorso, la prima fermata, l'ultima fermata, la direzione, ecc.).

Probabilmente ne sei già a conoscenza, ma la programmazione degli autobus può complicarsi molto rapidamente.Per esempio:

  • Potrebbe essere necessario designare determinate fermate come "Punti temporali" che verranno visualizzati negli orari stampati

  • Ogni percorso può avere più varianti.Ad esempio, alcune versioni potrebbero iniziare o terminare a una fermata dell'autobus diversa

  • Il programma sarà probabilmente diverso sabato e domenica e la maggior parte delle agenzie modifica i propri programmi trimestralmente

Potrebbe essere necessario prendere in considerazione alcuni di questi casi e integrarli nel tuo schema.

Questo aiuta?

Altri suggerimenti

Qui è solo uno (dei tanti) modi per farlo:

Sembra che probabilmente si desidera avere un tavolo routes, che descrive ogni percorso, e ha un tempo di avvio.

Poi, un tavolo stops con descrizioni e tempi per il bus attendere ad ogni fermata.

Una tabella stopDistanceMapping sarebbe descrivere la distanza tra due arresti, e il tempo di azionamento tra loro.

Infine, il tavolo routeMap collegherà routes individuo con una lista di stops. È quindi possibile compilare la distanza tavolo routes e l'ora utilizzando il tempo di attesa da ogni singola fermata, ed i tempi / distanze da stopDistanceMapping.

In bocca al lupo!

In una (molto approssimativa) 1 ° passaggio, vorrei mantenere i tempi di percorso degli autobus in una tabella come questa:

RouteID StartingLocationID  EndingLocationID TravelTime

Inoltre vorrei tenere una tabella di fermate come ad esempio:

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

Per gli itinerari stessi avrei memorizzare:

RouteID StartingLocationID RouteStartTime

Ovviamente si dovrebbe adattare questa per le proprie esigenze, ma questo dovrebbe dare un punto di partenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top