problem w projekcie bazy

0

Witam, mam utworzyć bazę w której jedną z funkcji będzie sprzedaż biletów. Problem polega na tym że nie wiem jak zrobić aby dało sie sprzedać bilet na odcinkach trasy, jednocześnie nie sprzedając więcej biletów niż jest miejsc. Np jadąc autobusem z Krakowa do Gdańska można kupić bilet z Krakowa do Gdańska i jednocześnie można kupić bilet z Krakowa do Warszawy przy czym miejsce zajęte na trasie Krk-Wwa jest wolne między Warszawą a Gdańskiem. Pozdrawiam.

1

możesz rozbić taką trasę na elementarne odcinki, w tym wypadku na dwa i w zależności od biletu rezerwować miejsca na poszczególnych odcinkach

0

Dla każdej trasy lepiej utworzyć osobną tabele?

1

Nie! Trasa wygląda np tak:
A - B - C - D
Więc w bazie zrób sobie mniej więcej coś takiego:

id route_id from to avalible_tickets_amount
1 1 A B 5
2 1 B C 2
3 1 C D 0

To że jest to jedna trasa definiuje Ci route_id i wszystkie trasy możesz trzymać w jednym miejscu. Następnie łatwo możesz pobrać sobie czy na trasie są wolne bilety. Dla przykładu.
User chce kupic bilet z A do C.
Pobierasz sobie ilość wolnych biletów z A do B i z B do C. Wszystkie pobrane wartości sa większe od 0 może jechać.

User chce kupić bilet z B do D.
Pobierasz sobie ilość wolnych biletów z B do C i z C do D. Z C do D nie ma wolnych miejsc więc user jechać nie może.

Oczywiście tabela powinna być bardziej rozbudowana, o np cenę przejazdu między punktami. Zamiast używać nazw miejscowości lepiej by było używać id które odpowiadałby miejscowością w innej tabeli. Tz zamiast A dać 1 gdzie 1 oznacza miasto o id 1 w bazie cities.

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