Hledání v jízdních řádech

V našem menším městě nabízí dopravní podnik jen jízdní řády jednotlivých linek bez možnosti jakéhokoliv hledání spojů, což není moc pohodlné. Chtěl bych za pomoci php a mysql vytvořit databázi jízdních řádů s možností vyhledávání. Vyhledat přímé spoje dle zadaných kritérií nebude žádný problém, ale přemýšlím, jak nejlépe vyřešit hledání spoje s přestupy. Když budu mít linky mezi těmito zastávkami:
č.1: A-B-C-D-E-F-G a zpět
č.2: B-V-W-X-Y-Z a zpět
č.3: T-U-V-E a zpět

A budu chtít všechny spoje z C do E, tak jak zajistím, aby mi to našlo nejenom spoj C-D-E, ale i C-B,B-V,V-E?
To už je dost komplikované. Ale u menšího města bych předpokládal, že MHD jezdí tak, že se nepřestupuje. Nejlepší je asi určit pár přestupních bodů (zastávky na kterých lze přestoupit) a nějak zkoušet všechny varianty.

Jinak, v našem městě se také nedá v jízdních řádech vyhledávat a taky jsem si něco napsal, akorát to nemá kompletní data a už dva roky to leží ladem, takže kdybys náhodou chtěl zdroják - neřeší to přestup, protože v našem městě se to moc nedělá.
Tak jsme se domluvili, posláno na mail.

Pokud má někdo nějaký dobrý nápad, jak tohle řešit, tak sem s ním.

Zatím jsem přišel na to, že by byly definovány přestupní body.
Vyhledávač bude při hledání jízdy z A do B hledat i trasu A -> libovolný přestupní bod (PB), PB -> PB a PB -> B a pokusí se to zkompletovat. Proti zacyklení bude sloužit seznam již použitých PB. Při výpisu výsledku se vše seřadí a upředností se spoje bez přestupování.

S Petrem jsme se shodli na tom, že v tak malém městě nemá smysl tohle řešit, ale jde i o použití ve větších (třeba krajských) městech.