przychodzi mi na mysl prosty zapis bazy:
id | kurs
1 | warszawa;kutno;konin;poznan;rzepin;berlin hbf
cos takiego powiedzmy

w polu kurs wszystkie stacje oddzielone myslnikami czyli explodujac to mamy [0] = stacja poczatkowa, max([0]) = stacja koncowa
jezeli ktos jedzie np do rzepina to szukanie zakanczamy na nim i podajemy wartosci mniejsze za wyjatkiem [0] jako stacje przejazdowe...