Mamy dane z dworca autobusowego i chcemy zbudować aplikację, która zapewni linię / linię wielokrotną dla danej stacji początkowej i końcowej.
Na przykład użytkownik próbuje uzyskać sugestię dotyczącą linii autobusowej ze stacji 1 do stacji 2.
Jeśli istnieje linia autobusowa, która może obejmować zarówno station1
i station2
powinien zostać zwrócony tej linii. Wynik może wyglądać następująco:
Step1: station1 -- station2
Jeśli nie ma bezpośredniej linii autobusowej między stacją 1 a stacją 2, aplikacja powinna spróbować znaleźć plan wymiany, na przykład wynik może wyglądać następująco:
Step1: station1 -- exchangestation
Step2: exchangestation -- station2
Teraz mamy dane, ale nie wiemy, jak zaprojektować model danych w bazie danych, jak utworzyć schemat, aby zapytanie było wydajne?
=============================================
Aktualizacja:
Na przykład mam cztery linie autobusowe (właściwie dwie), każda w innym kolorze:
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)
Teraz, jeśli chcemy zapisać te informacje w bazie danych w celu przeszukania planu linii autobusowej dla danej stacji do drugiej, to ile tabel potrzebujemy i co należy umieścić w każdej tabeli?