Estoy diseñando un horario de autobuses utilizando SQL. Cada ruta de autobús tiene varias paradas, ¿necesito una tabla diferente para cada ruta?

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

  •  21-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de llegar a la base de datos más eficiente posible. Mis líneas de autobuses todos tienen aproximadamente 10 paradas. El autobús comienza en el número uno hasta que se alcanza el tope 10a, a continuación, se trata de volver otra vez. Este ciclo ocurre 3 veces al día.

estoy realmente atascado en cuanto a cómo puedo generar eficientemente las horas para los autobuses y donde debería almacenar las paradas. Si pongo todas las paradas en un campo y las veces en otro, la base de datos no será muy dinámico.

Si puedo almacenar todos los registros uno por uno en una columna y luego las veces en otra columna, habrá una gran cantidad de repetir pasando más abajo como una parada tiene múltiples veces.

Tal vez me estoy perdiendo algo, sólo he acaba de comenzar el aprendizaje de SQL y esta es una tarea que se han establecido.

Gracias de antemano.

¿Fue útil?

Solución

Se necesitará una tabla que contiene su Timetable:

  • Ruta ID
  • Stop ID
  • Tiempo
  • posiblemente otros campos según sea necesario (dirección, secuencia # 's, bloque #, etc)

Yo recomendaría la creación de tablas Bus Stop separado (para almacenar nombres de parada, lat / largos, etc.) y Route (para almacenar nombre de la ruta, la primera parada, última parada, dirección, etc.).

Usted es probablemente consciente de esto ya, pero la programación de bus puede complicarse rápidamente. Por ejemplo:

  • Es posible que necesite para designar ciertas paradas como "tiempo de Puntos", que aparecen en las listas impresas

  • Cada ruta puede tener múltiples variaciones. Por ejemplo, algunas versiones pueden empezar o terminar en una parada de autobús diferente

  • El programa probablemente será diferente el sábado y el domingo, y la mayoría de las agencias de cambiar sus horarios trimestral

puede ser necesario considerar algunos de estos casos, e incorporarlos en su esquema.

¿Eso ayuda?

Otros consejos

Aquí hay sólo una (de las muchas) maneras de hacer esto:

Parece que usted probablemente querrá tener una mesa routes, que describe cada ruta, y tiene un tiempo de inicio.

A continuación, una tabla stops con las descripciones y los tiempos de espera para el autobús en cada parada.

Una tabla stopDistanceMapping describiría la distancia entre dos paradas, y el tiempo de accionamiento entre ellos.

Por último, la mesa routeMap enlazará routes individuo con una lista de stops. A continuación, puede llenar su mesa de distancia routes y el tiempo en el uso del tiempo de espera de cada persona parada, y los tiempos / distancias de stopDistanceMapping.

Buena suerte!

En un (muy duro) 1ª pasada, Me gustaría mantener los tiempos de recorrido del autobús en una tabla como la siguiente:

RouteID StartingLocationID  EndingLocationID TravelTime

También me mantendría una mesa de paradas, tales como:

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

Para los propios rutas Me almacenar:

RouteID StartingLocationID RouteStartTime

Es evidente que usted debe adaptar esto a sus propias necesidades, pero esto debe darle un lugar para empezar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top