【发布时间】:2011-05-01 17:46:42
【问题描述】:
我是 mysql 新手,我使用的是 phpmyadmin 5.1.43。用户执行交易假设他预订了一个座位,我希望在预订 48 小时后,如果他不支付预订费用,他的预订应该自动取消??我该怎么做?
【问题讨论】:
标签: php mysql model-view-controller
我是 mysql 新手,我使用的是 phpmyadmin 5.1.43。用户执行交易假设他预订了一个座位,我希望在预订 48 小时后,如果他不支付预订费用,他的预订应该自动取消??我该怎么做?
【问题讨论】:
标签: php mysql model-view-controller
有几种可能的方法。您选择哪个取决于系统注意事项:
【讨论】:
在 X 时间后删除行不是解决此类问题的关系方式。相反,您希望将足够的数据添加到表中,以便您可以对其进行查询并获得所需的结果。
即。添加一列“expire_at”或与日期时间类似的列,并在查询表时添加子句WHERE expire_at < NOW()
您甚至可以将其添加到视图中,然后以更简单的方式进行查询。
【讨论】:
每次有人要求预订时,您都可以这样做。如果座位已经被某人预订,并且预订的时间戳记录在特定列上,您可以通过将其与当前日期进行比较来获得预订的“年龄”:
mysql> select timestampadd(HOUR, 48, now());
+-------------------------------+
| timestampadd(HOUR, 48, now()) |
+-------------------------------+
| 2011-05-03 14:53:34 |
+-------------------------------+
1 row in set (0.00 sec)
(我选择函数now() 来说明这一点,您可以将now() 替换为特定列的名称。)。然后,如果已过期,则让新的预订覆盖之前的预订。
【讨论】: