本周流行 - 本月流行 - PHP功能

时间:2018-05-18 15:10:56

标签: php algorithm

假设表videos

id        | name         | views
----------+--------------+-----------
1         | Video1       | 52
2         | Video2       | 150
...

为了获取本周受欢迎/浏览次数最多的视频,我可以创建另一个表:videoviews

id        | foreign_key  | viewed_on
----------+--------------+-----------
1         | 1            | 10/12/2018
2         | 1            | 09/12/2018
...

从这张表中,我可以轻松获取上周/上个月的数据等。这不是问题。

问题: 假设我有1000个视频,每个视频每天获得100个视图。 我的videoviews表每天会有100000条记录。

我知道这不是实现此功能的最佳方式。只是想知道是什么?

我在SO上发现了这些但是......

How to get most visited posts of the week?

Popular Today, This Week, This Month - Design Pattern

2 个答案:

答案 0 :(得分:1)

  

问题:假设我有1000个视频,每个视频每天获得100个视图。我的视频观看表每天将有100000条记录。

您是否需要每个视图的完整记录?

您可以使用计数器方法,每天为每个视频存储一行,并在新行进入时简单地增加其值。这足以提供有用的每日分析,而不必为一百万个视频观看存储一百万行。

答案 1 :(得分:0)

在视频观看表中添加名为viewsstart_date的额外列。

点击带有视频的页面,获取视图,增加并更新周开始的地点start_date

每周只需要一行。如果您愿意,也可以删除旧周。