按日,周,月,年保存统计数据的数据库结构

Abs*_*Abs 11 mysql database database-design

我必须按站点的用户活动的天,周,月和年收集统计数据.我是数据库设计阶段,我想要正确地完成这个阶段,因为它将使我的编码生活更轻松.

我要做的就是每次活动发生时,只需在数据库中将字段中的值递增1.那么我可以按每天,每周,每个月和每年提取日期.我的DB应该如何构建?对大多数人来说,这是一个简单的问题.如果这种结构可以扩展以便它可以被其他类别分解,那也将是很好的.

我遇到麻烦的是每个月由更多天组成,这些天改变每个日历年.

感谢所有人的帮助或指导.

其他信息:Linux Machine,利用PHP和MySQL

Ton*_*ews 19

而不是每天更新计数,每周等.每次活动发生时,只需将一行插入表中:

insert into activities (activity_date, activity_info) 
values (CURRENT_TIMESTAMP, 'whatever');
Run Code Online (Sandbox Code Playgroud)

现在您的报告很简单,如:

select count(*) from activities
where activity_date between '2008-01-01' and '2008-01-07';
Run Code Online (Sandbox Code Playgroud)

要么

select YEARWEEK(`activity_date`) as theweek, count(*)
group by theweek
Run Code Online (Sandbox Code Playgroud)

  • 同意托马斯.此外,请查看此信息的有用性 - 它可以回答比您当前想到的问题更多的问题 - 例如,不同用户/期间的平均数量,每个用户的平均页面浏览量,...如果空间,您可以始终归档旧数据成为一个问题. (2认同)