1

我正在尝试建立一个数据库来记录每个用户最近 30 天的信息。数据将每天记录一次(即通过 cron 作业),并将成为项目的值(即不断变化)。

构建它的最佳方法是什么?我正在考虑设置一个表,然后将 30 天存储在表中并删除第 31 天,因为我在 cron 作业中添加了新的一天(并将所有其他天移到了一天),但这似乎不是很高效的..

谢谢您的帮助。

4

3 回答 3

3

您可以做的是存储每个条目的当前日期,然后在您的 cron 作业中,删除所有超过 30 天的条目。

例如(使用 MySQL),

DELETE FROM user_statistics WHERE DATEDIFF(NOW(), date_of_record) > 30;
于 2013-03-29T18:45:44.880 回答
2

使用自己的日期存储用户数据,并在超出限制时删除最旧的数据。无需转移任何东西。

于 2013-03-29T18:45:16.643 回答
2

我会使用DATE列按实际日期记录。您可以在 MySQL 中轻松查询“过去 30 天”。

至于清除,cron 作业也可以很容易地删除任何超过 30 天的内容。或者,由于很容易忽略超过 30 天的任何内容,您甚至可以选择不删除较旧的记录(至少不是每天都删除)。

于 2013-03-29T18:45:54.833 回答