0

基本上我只想知道我是否有正确的想法或者是否存在更好的想法。

我有一个数据库,用于存储网站上当前正在进行的(或将要进行的)拍卖。显然,拍卖会结束。我对网络开发很陌生,只是想知道将数据库中的拍卖状态更改为“过期”的最佳方法。

我正在使用 phpmyadmin 和 mysql 并阅读了一些关于 mysql 事件调度程序的信息。据我所知,他们似乎是这样做的好方法。在此基础上,我肯定只是每分钟运行一次定期事件,例如,它会根据拍卖的预定完成时间检查当前时间,然后在需要时进行更改?这个对吗?此外,我还可以将过期的拍卖移至旧存档 - 您认为这可能是优化我的数据库性能的最佳方法吗?

否则我只是想知道是否有更好(或更简单的方法)做同样的事情。例如,像 ebay 这样的网站是如何进行的?非常感谢您提前抽出时间。

PS我意识到这更像是一个概念问题,而不是任何具体问题。不过,我希望它可以问!

4

2 回答 2

1

你太复杂了。您不需要在拍卖到期时实际更改拍卖的状态。从到期日起,状态已经不言自明。如果您在数据库中有列expiry_time,那么在拍卖活动之前的任何时间,在它过期之后的任何时间。就如此容易。使用适当的查询,像这样查找所有有效的拍卖:

SELECT * FROM `auctions` WHERE `expiry_time` > NOW()
于 2012-12-11T14:52:07.907 回答
0

你可以这样做,但我会建议另一种方法。这是我自己实现的(在游戏中,但具有相同的机制),它就像一个魅力。

您唯一需要做的就是在每次页面加载时(在其他任何事情之前)运行一个函数,并检查是否需要将任何内容移动到存档中。如果有什么需要注意的,那就去做吧。

如果您这样做,您就会知道访问者看到的页面总是会更新。如果您使用某种类型的 cron_job 或您所说的事件,其中一些拍卖可能会在作业执行几秒钟后“过期”,因此显示为不正确的活动状态将近一分钟。

于 2012-12-11T14:54:03.807 回答