![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 1 Dołączył: 17.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam w zamiarach zaprogramować system rezerwacji biletów na spektakle. Nie zastanawiałem się jeszcze nad strukturą bazy, aczkolwiek mam małą zagwozdkę. Mianowicie, załóżmy, że na pewien spektakl jest dostępnych 100 biletów. Ludzie rezerwują rezerwują, aż w końcu dochodzimy do stanu 3 wolnych miejsc. Teraz załóżmy, że mamy dwóch uczestników scenariusza - A oraz B. A - rozpoczyna proces rezerwacji trzech biletów. B - rozpoczyna proces rezerwacji trzech biletów. A - jest już na etapie kiedy wystarczy kliknąć jeden przycisk aby potwierdzić rejestrację i dokonać płatności, lecz w między czasie B okazał się szybszy i zdąrzył już zapłacić za bilety - co w gruncie rzeczy wskazuje na stan biletów równy 0. I teraz co? Zostajemy ze stanem biletów o wartości ujemnej. Czy jest jakiś sposób aby zapobiec wyżej przedstawionemu? Pomyślałem nad odejmowaniem już wcześniej ilości rezerwowanych biletów - przed zakończeniem procesu. Czy ma to sens? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
aby wyjąć bilety z puli musisz:
za pomocą transakcji blokujesz tabele aby inna sesja jej nie mogla przeczytać sprawdzasz czy są bilety, update tabeli - ściągasz bilety do sesji kończysz transakcje, a później to co napisał batman, bilety są w sesji i albo zostają sprzedane albo wracają do puli |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 21:51 |