Witam

od raz uSORRY za duzo tekstu, ale... sad.gif

Mam problem z zaprojektowaniem bazy a raczej kilku szczegołów w niej. Baza dotyczy rozkładu lotów.

Bedzie wykonana w MySQLu.
Temat bazy jest wyzej napisany i dosc standardowy wiec w specyfice funkcjonowania lotniska i takiego modulu wyszukiwania nie bede sie zagłębiał a tylko napisze co chciałbym zaimplementować i z czym mam problemy.
Będzie to moduł wyszukujący połączenia lotnicze, dostępny dla uzytkowników strony internetowej.

Podstawowy projekt bazy:

tabela1: miasta (id, nazwa, roznica_czasowa);
tabela2: kraje (id, nazwa);
tabela3: regiony (id, nazwa);
tabela4: lotniska (id, id_miasta, id_regionu, id_kraju)
TABELA5: polaczenia (nr_polaczenia[uniq], id_lotniska_startowego, id_lotniska_docelowego, godzina_odlotu, czas_lotu, cena, odleglosc, id_typu_samolotu, ...)
tabela6: typy_samolotow (id, nazwa, ilosc_miejsc)


PROBLEM: W jaki sposób rozwiązać problem, który dotyczyłby dat i dni tygodnia w których dany lot (samolot) kursuje. Chodzi mi o to, by nie dodawać do bazy, danych oddzielnie na poszczególne dni w roku, aby baza zawierała tylko raz wszystkie możliwe połączenia oraz okreslenie ze dany lot (zawarty w rozkladzie papierowym) jest dostepny np tylko od pon do niedzieli oprocz sobót, do tego kursuje caly rok oprocz okreslonych odgórnie dla tego lotu dat (np swiat). Jak zaimplementować to w bazie, aby było jak najlatwiej zarzadzać tymi danymi poprzez php(4, 5).

hmmm...
Wiadomo ze kazde polaczenie, nawet tego samego typu, takim samym samolotem lecz odbywajace sie o innej godzinie danego dnia, bedzie musialo zostac dodane do bazy ponownie (to z powodu m.in. unikalnego numeru_rejsu). Linie lotnicze daja unikalny nr lotu kursom wykonywanym kilkukrotnie w jednym dniu, tą samą linią. I tu tak jakby znikał problem godzin...
Ale ciągle istnieje problem powtarzania danych kursów o stalych godzinach, na nastepne dni i (w ostatecznosci?) tworzenia dla nich unikalnych numerów rejsów. Lub prosciej identyfikowanie lotu po numerze rejsu i dacie.

Czy...
sad.gif sad.gif

Dodac nowa tabela 'kursowanie' (id, id_polaczenia, 2007-01-01, 2007-01-02, ..., 2007-12-31)

id_polaczenia bedzie w relacji z id z tabeli 'polaczenia'

Strukture i tworzenie tej tabeli bedzie wykonywane raz w roku poprzez formularze i obsluge php (oblsugę wyjątków od kursowania calorocznego (wartosc domyslna "1").

>select * from kursowanie;

id-----id_polacz------2007-01-01-------2007-01-02-----2007-01-02--------2007-01-02-----...-------2007-12-31
1--------77-----------------1------------------0----------------1-------------------1------------... --------- 1
2--------79-----------------1------------------1----------------1-------------------0------------... --------- 0
.
.
.
przy czym "0" oznacza ze nie kursuje danego dnia a "1" ze kursuje.

Czy takie rozwiązanie bedzie sensowne i optymalne? Baza bedzie miala tylko 365(6)+kilka kolumn gdyz na kazdy rok bedzie aktualizowana od podstaw


Chetnie przyjme każdą nawet najmniejsza pomoc.
Pozdrawiam!!