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