Tenemos datos de la estación de autobuses y queremos crear una aplicación que proporcione la línea / línea múltiple para una estación de inicio y una estación de finalización.
Por ejemplo, el usuario intenta obtener una sugerencia de línea de autobús de la estación1 a la estación2.
Si hay una línea de autobús que puede cubrir ambos station1
y station2
, esta línea debe ser devuelta. El resultado puede verse así:
Step1: station1 -- station2
Si no hay una línea de autobús directa entre la estación 1 y la estación 2, entonces la aplicación debe intentar encontrar el plan de intercambio, por ejemplo, el resultado puede verse así:
Step1: station1 -- exchangestation
Step2: exchangestation -- station2
Ahora tenemos los datos, pero no sabemos cómo diseñar el modelo de datos en la base de datos, ¿cómo crear el esquema para que la consulta sea eficiente?
=============================================
Actualizar:
Por ejemplo, tengo cuatro líneas de autobús (en realidad dos) cada una con un color 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)
Ahora, si queremos guardar esta información en la base de datos para consultar el plan de la línea de autobús para una estación a otra, ¿cuántas tablas necesitamos y qué se debe poner en cada tabla?