Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zapobiec sytuacji wyścigowej w rezerwacji hoteli online?

Jednym z rozwiązań jest dodanie dwóch kolumn do tabeli w bazie danych. Jedna kolumna to identyfikator sesji, identyfikator użytkownika lub cokolwiek innego użytkownika, któremu oferuje się pokój. Druga kolumna to sygnatura czasowa wskazująca, kiedy ta oferta wygaśnie.

Następnie w aplikacji wyświetlaj tylko pokoje, których sygnatura czasowa wygasła w kolumnie blokady. (Ustaw początkową sygnaturę czasową na 0, aby zaczynała się przeterminowana.) Po wybraniu pokoju ponownie sprawdź kolumnę. Jeśli jest tam niewygasła sygnatura czasowa, użytkownik otrzymuje komunikat „przepraszam, byłeś za wolny”. W przeciwnym razie umieść tam znacznik czasu na 15 minut w przyszłość lub cokolwiek innego i kontynuuj.

Często widuje się to na portalach turystycznych i witrynach do zakupu biletów, gdzie jest napisane coś w stylu „Zachowujemy dla Ciebie te miejsca przez kolejne 14 minut. Dokończ transakcję do tego czasu, w przeciwnym razie zostanie ona udostępniona bla bla bla”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP $stmt->num_rows nie działa na podstawie przygotowanych instrukcji

  2. Czy ograniczenie zapytania do jednego rekordu poprawia wydajność?

  3. Jak połączyć się z lokalnym hostem za pomocą JDBC?

  4. Projektowanie baz danych dla aplikacji korzystających z hashtagów

  5. BŁĄD 2003 (HY000):Nie można połączyć się z serwerem MySQL na hoście lokalnym (10061)