sql >> Database >  >> RDS >> Mysql

Hoe racecondities bij online hotelboekingen te voorkomen?

Een oplossing is om twee kolommen toe te voegen aan een tabel in de database. Eén kolom is de sessie-ID of gebruikers-ID of wat dan ook van de gebruiker die de kamer wordt aangeboden. De tweede kolom is een tijdstempel die aangeeft wanneer die aanbieding verloopt.

Toon vervolgens in je app alleen kamers met een verlopen tijdstempel in de blokkeringskolom. (Stel het initiële tijdstempel in op 0 zodat het begint te verlopen.) Wanneer een kamer is geselecteerd, controleer dan de kolom opnieuw. Als er een niet-verlopen tijdstempel is, krijgt de gebruiker het bericht "sorry, je was te langzaam". Plaats anders een tijdstempel voor 15 minuten in de toekomst of wat dan ook, en ga verder.

Je ziet dit vaak op reissites en sites voor het kopen van tickets, waar iets staat als "We houden deze stoelen nog 14 minuten voor je vast. Voltooi de transactie tegen die tijd of het zal worden vrijgegeven blah blah blah."



  1. MariaDB introduceert een JSON_TABLE()-functie

  2. Databasestructuur synchroniseren tussen applicaties

  3. slaapstand native SQL-queryfout

  4. MySQL-permutatie