php 数据库 - 为每个用户存储 30 天的数据

Posted

技术标签:

【中文标题】php 数据库 - 为每个用户存储 30 天的数据【英文标题】:php database - storing 30 days of data for each user 【发布时间】:2013-03-29 18:38:02 【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

【参考方案1】:

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

例如(使用 mysql),

DELETE FROM user_statistics WHERE DATEDIFF(NOW(), date_of_record) > 30;

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

以上是关于php 数据库 - 为每个用户存储 30 天的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用窗口函数获取每个日期值的今天、过去 7 天、过去 30 天的指标?

使用 SQL 获取表中每个用户最近 n 天的活动 [关闭]

在网站上存储每个用户的图片(php)

过去 30 天的移动平均线

以 30 分钟的时间间隔计算一天的用户数 oracle

有没有办法从 min(date) 开始按 30 天的间隔对时间戳数据进行分组并将它们添加为列