繁体   English   中英

计算每天,上周和上个月的访客点击量

[英]Count visitor hits per day, last week and last month

我创建了一个包含文章的网站,我想计算每篇文章的观点,以显示最受欢迎的文章:今天,本周和本月。

你会如何为此做数据库架构?

如果足以知道文章显示的次数,您可以使用以下内容:

daily_article_views(
  ,article_id
  ,view_date
  ,view_count
  ,primary key(article_id, view_date)
  ,foreign key(article_id) references articles
);

对于每个文章视图,您将使用当前日期和当前正在查看的文章的ID查找表中的行。 如果存在行,则递增计数器。 如果不存在任何行,则为view_count(以及截断日期)插入值为1的行。 然后,您可以使用SUM(view_count)将此表中的数据汇总为每周,每月或每年的数据。

但是,如果需要存储有关每个视图的信息,可以使用类似于以下内容的表结构。

article_views(
  ,view_id
  ,article_id
  ,view_date
  ,additional_data_about_each_view
  ,primary key(view_id)
  ,foreign key(article_id) references articles
);

additional_data_about_each_view将是表示某些用户ID,可能是IP地址或您需要存储的任何内容的列。 请注意,在此设计中,您将存储文章视图的时间,包括时间(小时,分钟,秒)。 这样您就可以分析一天中的数据,确切地说是查看文章的时间。

最后一个设计的缺点是它可能会生成大量数据,这可能会使查询变慢。 当然,没有什么能阻止你实现两种选择:)

如果您绝对不会对时间信息感兴趣,那么您可以使用包含3列的表格

article_id
date
view_count

您可能不一定希望为每次命中增加view_count列。 您可以在应用程序中缓存一些信息并批量更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM