Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-06-15 23:00:54

  gindek - Zubr, bydle na etacie.

gindek
Zubr, bydle na etacie.
Skąd: Z puszczy.
Zarejestrowany: 2008-12-08

Baza danych - rozkład jazdy autobusow miejskich.

Witam
Mam problem z samym zaprojektowaniem bazy. Dla każdego przystanku może być do kilku autobusów które się przy nim zatrzymują, więc wygląda to na problem z wartościami złożonymi ( jednek przystanek należy do kilku autobusów, nie widomo ilu, ilość może być różna).
Mam tabelę
przytanki ( id_przystanku, nazwa_przystanku),
myślałem czy nie dodać dodatkowych np. 5 kolumn i w nich zapisywać ID_linii do których należdy dany przystanek, czyli wygladalo by to tak
przystanki( id_przystanku, nazwa_przystanku, linia1, linia2, linia3, linia4, linia5),

ewentualnie nie zrobić jakiejś tabeli ... "trasy" w ktoryej miałbym
trasy( ID_trasy, id-przystanek1, id-przystanek2, id-przystanek3, id-przystanek4, id-przystanek5 .... id-przystanek(N) ).

Jednak wymogi są takie zeby baza była zrobiona nie tylko w sql ale tez w acsess ( z formularzem) no i opcja z robieniem tabeli "trasy" odpada bo tylko 14 pol jset w kwerendzie w access.

Jak macie jakies lepsze pomysly jak zrobic "liste tras" to chetnie wyslucham ;].


" Wojny przychodzą i odchodzą, a moi żołnierze są wieczni"


"Zbuduj mały, dziarski router z udostępnionych przez prowadzącego części od Kamaza?"

Offline

 

#2  2010-06-15 23:38:07

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Baza danych - rozkład jazdy autobusow miejskich.

w ogolnosci jedna linia moze miec kilka tras (najczesciej conajmniej dwie - w jedna i druga strone) ...
1) tabela linie: numer_linii, id_trasy, opis (ew. pole numer_linii jako tekstowe, bo numery linii moga zawierac literki)
2) tabela linie trasy: id_trasy, id_przystanku, numer_kolejny_przystanku_na_trasie, ostatni (pole ostatni typu bool zaznacza ze to ostatni przystanek na trasie)

Ostatnio edytowany przez bercik (2010-06-16 00:36:41)


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#3  2010-06-16 00:15:35

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: Baza danych - rozkład jazdy autobusow miejskich.

bercik źle w tkich przypadkach używasz tabel łączących
gindek podaj założenia bazy bo trudno coś wydedukować

na to co udało mi się wydedukować z założeń to powinno to tak wyglądać
http://biexi.eu/tmp/dug/l1.png

Założenia które przyjełam
1 - autobus może jeździć na kilku trasach w różnych godzinach
2 - na 1 przystanku może się zatrzymywać kilka autobusów
4 - autobusy kursują na różnych przydzielonych im odgórnie znanych kursach
5 - baza ma być zoptymalizowana pod kontem wyświetlania rozkładów jazdy
6 - na podstawie zawartości bazy powinno dać się wygenerować rozkład wiszący na przystanku

praktycznie wszystkie w/w da się zrealizować po 1 zapytaniu :]

PS kweenda to zapytanie SQL :P wiec nie ma co się martwić (można ją napisać z palca)
Access ogłupia tym klikaniem

Offline

 

#4  2010-06-16 00:30:08

  gindek - Zubr, bydle na etacie.

gindek
Zubr, bydle na etacie.
Skąd: Z puszczy.
Zarejestrowany: 2008-12-08

Re: Baza danych - rozkład jazdy autobusow miejskich.

tz. pojecie linia onacza autobus np. 173 wiec to jest "linia" 173 trasa jest jedna tam i spowrotem tylko kierunki sa różne ale odwiedzane przystanki są te same ( godziny dotarcia na określony przystanek moga żależeć od kierunku i taki był zamysł).

no ale powiem ze nie pomyslałem o zrobieniu "numerku_kolejnego_przystanku". Ale wtedy jest problem bo będe musiał ten "numer_kolejnego_przystnku", powiązać jakąś relacja z lista przystanków a to mi utworzy "pętle" w relacjach. tz. tabla przystanek(id_przystnku) -> id_trasy i tutaj Id_kolejnego_przystanku musial bym dac w relacji z przystanek(id_przystanku). Dobrze myśle czy źle myśle xd ?


" Wojny przychodzą i odchodzą, a moi żołnierze są wieczni"


"Zbuduj mały, dziarski router z udostępnionych przez prowadzącego części od Kamaza?"

Offline

 

#5  2010-06-16 00:51:13

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: Baza danych - rozkład jazdy autobusow miejskich.

Czyli założenie jest takie
jeden autobus porusza się na określonej tylko jednej trasie
jeśli tak to z mojego przykładu zawartość tabeli KURS wrzucasz do AUTOBUS
teraz tak można zrobić na 2 sposoby
1 - mieć lekką nadmiarowość w bazie i wpisywać trasy w jedna stronę oraz trasy z powrotem i godziny też ręcznie wpisywać
2 - jeśli nie mamy w założeniach że autobus czeka na końcach tras ewentualnie jak czeka określony czas to umieścić tą dane w oddzielnej tabeli i napisać zapytanie które powrotną trasę obliczy sam a dokładnie godziny :] (dla ułatwienia podam że zapytania można zagnieżdżać) to 2 rozwiązanie sprawdza się dla baz danych z niewielką ilością rekordów

Z tego co piszesz to chcesz zrobić brzydką tabele z trasami nie radze bo będziesz miał problemy z ilością przystanków na przejeździe pyzatym baza nie przejdzie Ci procesu normalizacji

Offline

 

#6  2010-06-16 00:54:30

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Baza danych - rozkład jazdy autobusow miejskich.

nie wiem czy dobrze zrozumieliscie: numer_kolejny_przystanku_na_trasie to nie jest powiazanie z id_przystanku, chodzilo o to ze mamy:

Kod:

trasa | przystanek | numer_kolejny | ostatni
123   | 4567       | 1             | 0
123   | 6753       | 2             | 0
123   | 8653       | 3             | 1

to taki prymitywny odpowiednik godziny zaproponowanej przez BiExi ...

@BiExi tego dotyczyla watpliwosc o zlym uzywaniu tabel laczonych?


BTW 4 warianty trasy jednej linii - http://ztm.waw.pl/rozklady.php?u=175/TRASY.HTM&c=76&l=1 ... a to nie rekord ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#7  2010-06-16 00:58:26

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: Baza danych - rozkład jazdy autobusow miejskich.

aa źle Cię zrozumiałam
nie nie zapętlisz się :]
wiem co chcesz zrobić owszem można tak zrobić
dołączasz za pomocą INNER JOIN

Offline

 

#8  2010-06-16 00:59:10

  gindek - Zubr, bydle na etacie.

gindek
Zubr, bydle na etacie.
Skąd: Z puszczy.
Zarejestrowany: 2008-12-08

Re: Baza danych - rozkład jazdy autobusow miejskich.

juz uaktulaniam, post Biexi byl pisany rono z moim i nie widzialem go. 5 minut.

@bercik sry. zle przeczytalem xd ( numer_kolejny = cos na wzor ID).

fakt zalozeni nie podalem, moj błąd, jako że większośc została "odgadnięta" przez Biexi to uaktualnie Twoja liste :]
1 - autobus posiada stałą trasę, w dwuch kierunkach, czyli porusza się odwiedzając te same przystanki ( np. kombitat -> bronowice , bronowice -> kombinat), myślałem czy nie dodać do tabeli przystankek kolumny "kierunek"
2 - na 1 przystanku może się zatrzymywać kilka autobusów
4 - autobusy kursują na różnych przydzielonych im odgórnie znanych kursach
5 - baza ma być zoptymalizowana pod kontem wyświetlania rozkładów jazdy
6 - na podstawie zawartości bazy powinno dać się wygenerować rozkład wiszący na przystanku
7 - na danej trasie kurusje kilka autobusów o tym samym numerze ( czyli np. pomiedzy 16 a 17 przyjezdzaja autobusy o 16:10 ; 16:20 i 16:40)
8 - nie trzeba uwzględniać czasu postojów autobusów na pętli przed nowym wyjazdem na linie.
9 - nie trzeba uwzględniać kierowców prowadzących dany autobus ( bedzie potrzebne to wiem jak to zrobic).
10- czas odjazdu autobusu będzie wpisany na "sztywno" dla kazdego przystanku dla kazdego numeru autobusu ( dla kazdej linii), oznacza to ze przesunięcie rozkladu jazdy o 2 minuty będzie równoznacze z wklepanie wszystkich godzin od nowa.


@BiExi Twoj przyklad podany w schemacie blokowym rozwiązuje problem "rozkladu jazdy" dla konkrentej linii ? tz. ze kazda linia ma inną trase i po innych przystankach jeżdzi i na tej podstawie będzie się dało wygenerować "rozkład wiszący na przystanku"

Ostatnio edytowany przez gindek (2010-06-16 01:26:33)


" Wojny przychodzą i odchodzą, a moi żołnierze są wieczni"


"Zbuduj mały, dziarski router z udostępnionych przez prowadzącego części od Kamaza?"

Offline

 

#9  2010-06-16 01:01:36

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: Baza danych - rozkład jazdy autobusow miejskich.

:P

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)