Temos dados da estação de ônibus e queremos criar um aplicativo que forneça a linha / linha múltipla para uma determinada estação inicial e final.
Por exemplo, o usuário tenta obter uma sugestão de linha de ônibus da estação1 para a estação2.
Se houver uma linha de ônibus que possa cobrir ambos station1
e station2
, essa linha deverá ser retornada. O resultado pode ser assim:
Step1: station1 -- station2
Se não houver uma linha de ônibus direta entre a estação1 e a estação2, o aplicativo deve tentar encontrar o plano de troca, por exemplo, o resultado pode ser assim:
Step1: station1 -- exchangestation
Step2: exchangestation -- station2
Agora temos os dados, mas não sabemos como projetar o modelo de dados no banco de dados, como criar o esquema para tornar a consulta eficiente?
===============================================
Atualizar:
Por exemplo, eu tenho quatro linhas de ônibus (na verdade duas), cada uma com uma cor diferente:
l1: A-B-C-D
l2: D-B-A (in fact, the l2 is the reverse of l1 except the l2 will skip station `C`.
l3: E-B-D-F
l4: F-D-B-E(reverse of l3)
Agora, se queremos salvar essas informações no banco de dados para consultar o plano da linha de ônibus de uma estação para outra, quantas tabelas precisamos e o que deve ser colocado em cada tabela?