Disponiamo di dati sulla stazione degli autobus e vogliamo creare un'applicazione che fornisca la linea / linea multipla per una data stazione di partenza e la stazione finale.
Ad esempio, l'utente tenta di ottenere un suggerimento sulla linea di autobus dalla stazione1 alla stazione2.
Se esiste una linea di autobus che può coprire entrambi station1
e station2
, questa linea deve essere restituita. Il risultato potrebbe essere simile al seguente:
Step1: station1 -- station2
Se non esiste una linea di autobus diretta tra station1 e station2, l'applicazione dovrebbe tentare di trovare il piano di scambio, ad esempio, il risultato potrebbe essere simile al seguente:
Step1: station1 -- exchangestation
Step2: exchangestation -- station2
Ora abbiamo i dati, ma non sappiamo come progettare il modello di dati nel database, come creare lo schema per rendere efficiente la query?
=============================================
Aggiornare:
Ad esempio, ho quattro linee di autobus (in realtà due) ognuna con un colore diverso:
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)
Ora, se vogliamo salvare queste informazioni nel database per eseguire una query sul piano della linea bus per una stazione assegnata a un'altra, allora quante tabelle sono necessarie e cosa dovrebbe essere inserito in ciascuna tabella?