Projekt bazy - komunikacja miejska

0

Witam,

muszę stworzyć model konceptualny bazy danych obsługującej komunikację publiczną małego miasteczka. Autobusy, trasy, kierowcy. Mamy kilka tras, na danej trasie w danym czasie kierowca prowadzi autobus. System powinien: wspomagać tworzenie rozkładu jazdy i pomagać w sytuacjach nagłych na przykład, gdy trzeba znaleźć wolnego kierowce i wolny autobus do obsługi większej imprezy masowej. Niestety wcześniej nie miałem do czynienia z takimi projektami i nie mogę sobie poradzić z tym problemem. Byłbym wdzięczny za wszelkie wskazówki bo to co usiłuję od jakiegoś czasu wymyślić i przelać na papier raczej nie nadaje się do późniejszej realizacji.

0

Projekt bazy... Wbrew pozorom to "najciekawszy" fragment roboty ;). Pokaż co masz i będziemy modyfikować.

0

To jest to co do tej pory nabazgrałem (podaję tabelami). Właśnie sprawdzam to na konkretnym przykładzie.

AUTOBUS
| id | marka | ilość miejsc | rejestracja |

KIEROWCA
| id | imię | nazwisko | telefon | e-mail | adres |

PRZYSTANEK
| id | nazwa |

ODLEGŁOŚĆ
| id | id_przystanek_od | id_przystanek_do | czas |

TRASA
| id | nazwa | id_przystanek_od | id_przystanek_do | czas_startu | id_autobusu | id_kierowcy |

(czas-startu to godzina wyjazdu na trasę)

LINIA
| id | numer | id_przystanku | id_trasy |

0

Trasa i linia nie bardzo mi podchodzą.

Sama linia, jako n przystanków od puktu A do B (bo tak to rozumiem) nie potrzebuje id_przystanku ani id_trasy

LINIA
| id | numer/nazwa |

Trasa jako przystanki po drodze (tabela zbiorcza ODLEGLOSC - LINIA) na danej linii też nie bardzo daje się użyć:

TRASA
| id | id_lini | id_odleglosci | numer |
teraz tak:
id_lini - bez komentarza
id_odleglosci - czyli z którego przystanku do którego i w jakim czasie jedzie
numer - kolejność przejazdów na danej lini

Sortując po numerze dla id_lini masz nota bene czas przejazdów na danej linii + kolejność przystanków, dodając do tego czas startu masz rozkład jednego przejazdu.

id_autobusu ani id_kierowcy w żadnym razie tu nie powinno być

Mając już przystanki, odległości pomiędzy przystankami, linie i rozkład przystanków na danej lini potrzebne są jeszcze dwie tabele powiedzmy rozklad_jazdy:

ROZKLAD_JAZDY
| id | id_linii | czas_wyjazdu |

To + tabela trasa i masz gotowy rozkład jazdy dla wszystkich lini (+ przystanki i masz nawet mapkę :)).

I ostatnia łącząca poprzednie z kierowcami i autobusami:

WYJAZDY
| id | id_rozkladu | id_ kierowcy | id_autobusu |

Te tabele pozwalają już uzyskać twoją zakładaną funkcjonalność:

Tworzenie rozkładu jazdy => złączenie LINIA(w zasadzie tylko nazwa) + TRASA(przystanki pośrednie i czas przejazdu pomiędzy nimi) + ROZKLAD_JAZDY(czas startu)
Szukanie wolnego kierowcy => WJAZDY(kierowca i rozkład po którym pomyka) + ROZKLAD_JAZDY(czas wyjazdu i linia) + TRASA(czas przejazdu lini) i mamy godziny w jakich dany kierowca jest zajęty.
Szukanie wolnego autobusu => j.w

Jeśli coś jest niejasne pytaj

0

Hm mam pytanie co do tych poprawek:
Jak wiadomo na jednej linii jeżdżą autobusy w dwie strony - jak to jest w tej bazie rozróżniane?

0

było kiedyś dokładnie to samo - poszukaj

0

Fakt, małe przeoczenie :)

Możne dodać jedno pole do rozkładów jazdy, po którym można rozróżnić, czy przystanki na lini mają być sortowane w górę czy w dół.
ROZKLAD_JAZDY
| id | id_linii | czas_wyjazdu | keirunek |

1 użytkowników online, w tym zalogowanych: 0, gości: 1