Więc chciałem zaprojektować sobie bazę danych do aplikacji, która będzie wyszukiwać połączenia autobusowe.
Wyglądać to powinno mniej więcej tak:
nr autobusu |
nr linii |
od |
przez |
do |
typ |
5321 |
A3 |
Gdańsk |
Tczew, Płock |
Warszawa |
zwykły |
2421 |
D7 |
Bielsko-Biała |
Katowice, Opole |
Poznań |
ekspres |
4622 |
F9 |
Wrocław |
Opole, Katowice, Kraków, Rzeszów |
Lwów |
zwykły |
8733 |
K1 |
Białystok |
Warszawa, Dąbrowa Górnicza |
Katowice |
ekspres |
I pojawia się tutaj pytanie - w jaki sposób właściwie przechować przystanki pośrednie, których ilość jest z góry nieznana?
Zakładam, że rozwiązania typu "osobna tabela dla każdego kursu" jest kiepskim rozwiązaniem, podobnie jak robienie 20 kolumn typu przez1,przez2 też jest bez sensu. W jaki sposób projektuje się tego typu rozwiązania, aby nie zasyfić sobie bazy danych i nie robić gigantycznej redundancji?