Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> rozkład lotów samolotów :)
slaw:)
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.02.2004

Ostrzeżenie: (0%)
-----


teamt pracy: sprzedaż i rezerwacja biletów lotniczych.

mam już mniej więcej wszystko zaplanowane. Powstał taki oto problem:

klient rezerwuje bilet na lot. lot sklada sie z polaczen, bo nie zawsze lecimy bezposrednio z jednego miejsca do drugiego. Np. Bydgoszcz - Warszawa - New York. Moze byc czasami wiecej polaczen skladajacych sie na jeden zarezerwowany przez klienta lot (tak mi sie wydaje, bo nie latam samolotami, nie ma potrzeby). Moj pomysl byl taki:

spis polaczen:
- miasto poczatkowe
- miasto koncowe

Wychodzi wiec np:

- Bydgoszcz - Warszawa
- Warszawa - New York

Tu jest jeszcze ok, bo podajemy skad chcemy leciec - Bydgoszcz, dokad - New York. Szuka wiec polaczen, gdzie miasta poczatkowe to bydgoszcz, a koncowe to NY, pozniej wybiera z nich tylko te, gdzie pojawia sie warszawa (jako koncowe tam, gdzie poczatek jest Bydgoszcz, a jako poczatek, tam gdzie koncowe to NY).

Pytanie jak zrobic cos takiego, gdy lecimy np:

Bydgoszcz - Warszawa - Berlin - Paryz - New York.

Sposob, ktory podalem sie chyba nie sprawdzi i nie wiem jak to zrobic. Moze ktos z Was ma jakis pomysl na to?

Troche namieszalem, ale chyba da sie to zrozumiec.

Z gory dzieki za odzew i pomoc

pozdrawiam

slaw:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
spenalzo
post
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


tabela "polaczenia"
- id polaczenia
- miasto startowe
- miasto docelowe
- przesiadki (domyslnie NULL)

tabela "miasta"
- id miasta
- nazwa

Jezeli masz lot bez przesiadek to robisz tak, w tabeli polaczenia:
id: xxx
mstartiowe: 1
mdocelowe: 43
przesiadki: null


Jezeli masz lot z dwoma przesiadkami to w tabeli polaczenia wpisujesz tal:
id: xxx
mstartiowe: 1
mdocelowe: 43
przesiadki: 543,85

Czyli ID miast rozdzielone przecinkami.
W ten sposób łatwo szukać lotów bez przesiadek (tam gdzie jest NULL), łatwo pobrać nazwy przesiadek (np. " WHERE miasta.id IN (543,85)") i jest porządek.
Go to the top of the page
+Quote Post
slaw:)
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.02.2004

Ostrzeżenie: (0%)
-----


dzieki. myslalem jakos w tych okolicach, ale nie moglem wpasc dokladnie.

ale jeszcze jedno: czy wartosci ni musza byc atomowe (niepodzielne)? bo przesiadki wychodza w tym wypadku nieatomowe i czy to tak moze byc?

ale i tak dzieki za pomoc. sprobuje tak zrobic. mam nadzieje, ze jest to poprawnie (te nieatomowe wartosci). chyba, zeby jeszcze tabele jedna dorobic z przesiadkami?
Go to the top of the page
+Quote Post
spenalzo
post
Post #4





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Niee, po co dodatkową tabelę? W kolumnie przesiadki umieszczasz nazwy miast gdzie są przesiadki, rozdzielone przecinkami.
Go to the top of the page
+Quote Post
slaw:)
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.02.2004

Ostrzeżenie: (0%)
-----


oki. dzieki wielkie. jak zaimplementuje rozwiazanie to sie odezwe.

pozdr

slaw:)
Go to the top of the page
+Quote Post
slaw:)
post
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.02.2004

Ostrzeżenie: (0%)
-----


dzieki spenalzo za pomoc. jeszcze do tego tematu wrocimy. nie mialem zbyt czasu, zeby to dopracowac (tak akurat wypadlo licho) wiec nie robie na razie.

probowalem tak jak napisales: bez tabeli przesiadki, ale w mysql mi to nie wychodzi. ale to ma czas. jakos nie moge sie w tych samolotach, liniach i polaczeniach znalezc.

zapraszam za to do nowej dyskusji: http://forum.php.pl/viewtopic.php?p=82016

ja tu jeszcze wroce (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdr

slaw:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:14