Estou projetando um horário de barramento usando o SQL. Cada rota do ônibus tem várias paradas, preciso de uma tabela diferente para cada rota?

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

  •  21-09-2019
  •  | 
  •  

Pergunta

Estou tentando criar o banco de dados mais eficiente possível. Minhas rotas de ônibus têm cerca de 10 paradas. O ônibus começa no número um até chegar à 10ª parada e voltará novamente. Este ciclo acontece 3 vezes ao dia.

Estou realmente preso sobre como posso gerar com eficiência os tempos para os ônibus e onde devo armazenar as paradas. Se eu colocar todas as paradas em um campo e os tempos em outro, o banco de dados não será muito dinâmico.

Se eu armazenar todas as paradas uma a uma em uma coluna e, em seguida, os tempos de outra coluna, haverá muita repetição acontecendo mais abaixo, pois uma parada tem várias vezes.

Talvez eu esteja perdendo alguma coisa, apenas comecei a aprender SQL e essa é uma tarefa que fomos definidos.

Desde já, obrigado.

Foi útil?

Solução

Você precisará de uma tabela que contenha seu Timetable:

  • ID da rota
  • Stop ID
  • Tempo
  • Possivelmente outros campos conforme necessário (direção, sequência #, Block #, etc)

Eu recomendaria criar mesas separadas Bus Stop (para armazenar nomes de parada, lat/longs, etc) e Route (Para armazenar o nome da rota, a primeira parada, a última parada, a direção, etc.).

Você provavelmente já está ciente disso, mas a programação de ônibus pode ficar complicada muito rapidamente. Por exemplo:

  • Pode ser necessário designar determinadas paradas como "tempo de tempo" que aparecem nos horários impressos

  • Cada rota pode ter várias variações. Por exemplo, algumas versões podem começar ou terminar em uma parada de ônibus diferente

  • O cronograma provavelmente será diferente no sábado e domingo, e a maioria das agências muda seus horários trimestralmente

Pode ser necessário considerar alguns desses casos e construí -los em seu esquema.

Isso ajuda?

Outras dicas

Aqui está apenas uma (das muitas) maneiras de fazer isso:

Parece que você provavelmente quer ter um routes Tabela, que descreve cada rota e tem um horário de início.

Então uma stops mesa com descrições e tempos de espera pelo ônibus em cada parada.

UMA stopDistanceMapping A tabela descreveria a distância entre duas paradas e o tempo de unidade entre eles.

Finalmente, você routeMap A tabela vai vincular individual routes com uma lista de stops. Você pode então preencher seu routes distância da mesa e tempo usando o tempo de espera de cada parada individual e os tempos/distâncias de stopDistanceMapping.

Boa sorte!

Em uma primeira passagem (muito difícil), eu mantinha os horários de rota do ônibus em uma mesa como esta:

RouteID StartingLocationID  EndingLocationID TravelTime

Além disso, eu manteria uma mesa de paradas como:

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

Para as próprias rotas, eu armazenaria:

RouteID StartingLocationID RouteStartTime

Obviamente, você deve adaptar isso às suas próprias necessidades, mas isso deve lhe dar um lugar para começar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top