sql >> Database teknologi >  >> RDS >> Mysql

Sådan forhindrer du racetilstand i online hotelbooking

En løsning er at tilføje to kolonner til en tabel i databasen. En kolonne er sessions-id'et eller bruger-id'et eller hvad som helst af den bruger, der bliver tilbudt rummet. Den anden kolonne er et tidsstempel, der angiver, hvornår tilbuddet udløber.

Derefter skal du i din app kun vise rum, der har et udløbet tidsstempel i hold-kolonnen. (Indstil det indledende tidsstempel til 0, så det starter udløbet.) Når et rum er valgt, skal du kontrollere kolonnen igen. Hvis der er et uudløbet tidsstempel der, får brugeren beskeden "undskyld, du var for langsom". Ellers skal du sætte et tidsstempel der i 15 minutter ud i fremtiden eller hvad som helst, og fortsæt.

Du ser dette meget på rejsesider og billetkøbssider, hvor der står noget i stil med "Vi holder disse pladser for dig i yderligere 14 minutter. Gennemfør venligst transaktionen inden da, ellers vil den blive frigivet bla bla bla."



  1. Hvordan udfører man en orakel-lagret procedure?

  2. hvordan får jeg måned fra dato i mysql

  3. Oracle bordskifteskærm

  4. Opdater en række, men indsæt, hvis rækken ikke findes i kodetænder