1

我有一个 php/MYSQL 网站供学生在宴会上选择餐桌座位。一旦 10 个座位被占用,该表将不再可用。如何防止两名或更多学生同时为自己和最多 3 位客人预订座位?似乎如果两个学生同时进入并尝试在同一张桌子上预订座位,则数据被覆盖或可以分配超过 10 个座位。我需要一种方法来确保第一个尝试在餐桌上预订座位的人在第二个用户能够写入他的选择之前写入数据库?任何帮助,将不胜感激。

4

2 回答 2

1

做类似的事情

 UPDATE Seating SET AvailableSeats = AvailableSeats - 4 WHERE TableId = 5 AND AvailableSeats = 7;

7从之前的阅读中得到的。如果此更新失败,那么您知道其他人同时分配了座位。

于 2012-04-30T16:12:55.967 回答
-1

我会在调用代码进行预订之前立即检查可用性是否仍然存在,例如;

if (functionToCheckAvailability(number_of_seats)) {
    bookSeats(number_of_seats);
}
于 2012-04-30T16:50:42.803 回答