Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да предотвратите състезание при онлайн резервация на хотел

Едно решение е да добавите две колони към таблица в базата данни. Една колона е идентификаторът на сесията или потребителският идентификатор или каквото и да е от потребителя, на който се предлага стаята. Втората колона е клеймо за време, показващо кога тази оферта ще изтече.

След това в приложението си показвайте само стаи, които имат изтекъл времеви печат в колоната за задържане. (Задайте първоначалното времеви печат на 0, така че да започне да е изтекъл.) Когато е избрана стая, проверете колоната отново. Ако там има неизтекъл времеви печат, потребителят получава съобщение „съжалявам, бяхте твърде бавен“. В противен случай поставете времева марка там за 15 минути в бъдещето или каквото и да е и продължете.

Виждате това на сайтове за пътувания и сайтове за закупуване на билети много, където пише нещо от рода на „Задържаме тези места за вас за още 14 минути. Моля, завършете транзакцията дотогава или ще бъде освободена, бла-бла-бла.“



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. сортирайте сбора в група по

  2. Пролетно зареждане - настройките на MySQL не работят

  3. Използвайки Prepared Statement, как да върна идентификатора на вмъкнатия ред?

  4. Логически оператор И в mySql REGEXP?

  5. Свързване с Mysql на AWS Elastic Beanstalk