我正在尝试建立一个数据库来记录每个用户最近 30 天的信息。数据将每天记录一次(即通过 cron 作业),并将成为项目的值(即不断变化)。
构建它的最佳方法是什么?我正在考虑设置一个表,然后将 30 天存储在表中并删除第 31 天,因为我在 cron 作业中添加了新的一天(并将所有其他天移到了一天),但这似乎不是很高效的..
谢谢您的帮助。
我正在尝试建立一个数据库来记录每个用户最近 30 天的信息。数据将每天记录一次(即通过 cron 作业),并将成为项目的值(即不断变化)。
构建它的最佳方法是什么?我正在考虑设置一个表,然后将 30 天存储在表中并删除第 31 天,因为我在 cron 作业中添加了新的一天(并将所有其他天移到了一天),但这似乎不是很高效的..
谢谢您的帮助。
您可以做的是存储每个条目的当前日期,然后在您的 cron 作业中,删除所有超过 30 天的条目。
例如(使用 MySQL),
DELETE FROM user_statistics WHERE DATEDIFF(NOW(), date_of_record) > 30;
使用自己的日期存储用户数据,并在超出限制时删除最旧的数据。无需转移任何东西。
我会使用DATE
列按实际日期记录。您可以在 MySQL 中轻松查询“过去 30 天”。
至于清除,cron 作业也可以很容易地删除任何超过 30 天的内容。或者,由于很容易忽略超过 30 天的任何内容,您甚至可以选择不删除较旧的记录(至少不是每天都删除)。