使用 PHP 和 MySQL 限制每个用户的预订数量

Limiting number of reservations per user with PHP and MySQL

我的用户可以创建预订,但我想限制它 - 假设一个用户最多可以进行 5 个状态为“待定”的预订,在管理员批准预订并将待定状态更改为批准后,用户可以再订。

用户进行预订时默认给出待定状态。我想要实现的是,如果预订 table 在同一个 user_id 下有 5 个待定预订,则用户无法进行新预订,因此他会收到无法进行更多预订的警报.

我的问题是,我怎样才能做到这一点?是通过使用 COUNT,还是应该为它创建一个触发器?如果您能提供有关如何处理此问题的任何建议,我们将不胜感激。

最简单的方法是在处理用户输入时执行另一个查询。新查询将执行类似于 SELECT COUNT(*) FROM reservations WHERE user_id=? AND status='pending' 的操作。然后您可以签入 PHP 此查询的结果。如果它大于或等于您施加的限制,则向用户显示一条消息,通知他们他们已达到最大待处理预订,他们需要等待。

伪代码:

  1. 如果请求新的预订

  2. 准备一个语句来检查当前用户的待定预订数。

  3. 执行并获取结果

  4. 如果计数 >= 5

    4.1。停止处理请求并向用户显示消息

  5. 其他

    5.1。继续插入新预订。