Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách ngăn chặn tình trạng chạy đua trong đặt phòng khách sạn trực tuyến

Một giải pháp là thêm hai cột vào một bảng trong cơ sở dữ liệu. Một cột là ID phiên hoặc ID người dùng hoặc bất kỳ cột nào của người dùng đang được cung cấp phòng. Cột thứ hai là dấu thời gian cho biết thời điểm ưu đãi đó sẽ hết hạn.

Sau đó, trong ứng dụng của bạn, chỉ hiển thị các phòng có dấu thời gian hết hạn trong cột lưu giữ. (Đặt dấu thời gian ban đầu thành 0 để dấu thời gian bắt đầu hết hạn.) Khi một phòng được chọn, hãy kiểm tra lại cột. Nếu có dấu thời gian chưa hết hạn ở đó, người dùng sẽ nhận được thông báo "xin lỗi, bạn đến quá chậm". Nếu không, hãy đặt một dấu thời gian ở đó trong 15 phút trong tương lai hoặc bất cứ điều gì, và tiếp tục.

Bạn thấy điều này trên các trang web du lịch và trang web mua vé, rất nhiều nơi nó nói đại loại như "Chúng tôi sẽ giữ chỗ này cho bạn trong 14 phút nữa. Vui lòng hoàn tất giao dịch trước đó hoặc nó sẽ được giải phóng blah blah blah."



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đặt cơ sở dữ liệu MySQL dưới quyền kiểm soát phiên bản?

  2. dịch vụ mysqld dừng mỗi ngày một lần trên máy chủ ec2

  3. COLLATION 'utf8_general_ci' không hợp lệ cho CHARACTER SET 'latin1'

  4. Cách nhận lời nhắc bằng MOD () trong PostgreSQL, MS SQL Server và MySQL

  5. Làm cách nào để lấy các từ phổ biến nhất trong bảng thông qua mysql?