Je suis la conception d'un calendrier de bus en utilisant SQL. Chaque ligne de bus a de multiples arrêts, ai-je besoin d'une autre table pour chaque itinéraire?

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

  •  21-09-2019
  •  | 
  •  

Question

Je suis en train de trouver la base de données la plus efficace possible. Mes itinéraires de bus ont tous environ 10 arrêts. Le bus commence au numéro un jusqu'à ce qu'il atteigne le 10e arrêt, puis il revient à nouveau. Ce cycle se produit 3 fois par jour.

Je suis vraiment coincé comment je peux générer efficacement les temps pour les bus et où je dois stocker les arrêts. Si je mets tous les arrêts dans un champ et le temps dans une autre, la base de données ne sera pas très dynamique.

Si je stocke tous les arrêts, un par un dans une colonne, puis les temps dans une autre colonne, il y aura beaucoup de répéter qui se passe plus bas comme un arrêt a plusieurs fois.

Peut-être que je manque quelque chose, je viens juste de commencer l'apprentissage SQL et c'est une tâche que nous avons défini.

Merci d'avance.

Était-ce utile?

La solution

Vous aurez besoin d'une table qui contient votre Timetable:

  • Route ID
  • Arrêter ID
  • Heure
  • Peut-être d'autres domaines que nécessaire (direction, séquence, # 's Block #, etc)

Je recommande de créer des tables séparées Bus Stop (pour stocker les noms d'arrêt, lat / longs, etc.) et Route (pour nom de l'itinéraire du magasin, premier arrêt, dernier arrêt, direction, etc.).

Vous êtes probablement au courant de ce déjà, mais l'ordonnancement de bus se compliquent très rapidement. Par exemple:

  • Vous devrez peut-être désigner certains arrêts comme des « points de temps », qui apparaissent dans les tableaux imprimés

  • Chaque itinéraire peut avoir de multiples variations. Par exemple, certaines versions peuvent commencer ou terminer à un arrêt de bus différent

  • Le calendrier sera probablement différent le samedi et le dimanche, et la plupart des agences changer tous les trois mois leur horaire

Vous devrez peut-être examiner certains de ces cas et de les intégrer dans votre schéma.

Est-ce que l'aide?

Autres conseils

est juste pour une (des nombreux) façons de le faire:

On dirait que vous voulez sans doute avoir une table de routes, qui décrit chaque itinéraire, et a un temps de démarrage.

Ensuite, une table de stops avec des descriptions et des temps d'attente pour le bus à chaque arrêt.

Une table de stopDistanceMapping décrirait la distance entre deux butées, et le temps d'entraînement entre eux.

Enfin, votre table de routeMap reliera routes individuelle avec une liste de stops. Vous pouvez ensuite remplir votre distance de table routes et le temps en utilisant le temps d'attente de chaque arrêt individuel, et les temps / distances de stopDistanceMapping.

Bonne chance!

Sur une (très approximative) 1er passage, je garderais les temps de parcours d'autobus dans un tableau comme celui-ci:

RouteID StartingLocationID  EndingLocationID TravelTime

Aussi je garderais une table d'arrêts tels que:

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

Pour les routes elles-mêmes, je stocker:

RouteID StartingLocationID RouteStartTime

Il est évident que vous devez adapter cela à vos propres besoins, mais cela devrait vous donner un endroit pour commencer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top