本周流行-本月流行-PHP功能
假设一个表本周流行-本月流行-PHP功能,php,algorithm,Php,Algorithm,假设一个表视频 id | name | views ----------+--------------+----------- 1 | Video1 | 52 2 | Video2 | 150 ... 为了获得本周最受欢迎/观看最多的视频,我可以创建另一个表:videoviews id | foreign_key | viewed_on ----------+--------------+--
视频
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条记录
我知道这不是实现此功能的最佳方式。只是想知道是什么
我发现这些衣服很漂亮,但是
在VideoView表中添加名为视图
和开始日期
的额外列
在用视频点击页面时,从start\u date
开始一周的位置获取视图、增量和更新
每周只需要一行。如果愿意,您还可以删除旧周
问题:假设我有1000个视频,每个视频每天有100次浏览。我的videoviews表每天将有100000条记录
您需要每个视图的完整记录吗
相反,您可以使用计数器方法,每天为每个视频存储一行,并在新行出现时简单地增加其值。这足够精细,可以提供有用的每日分析,而不必为一百万次视频视图存储一百万行。创建更多列<代码>本周访问\u
,然后在周一午夜将cronjob重置为0?我也想到了。。但我也需要这个月的数据。因此,在30天内,我将有300000条记录。哪个不好。?您将拥有与视频计数相同的行数。@ThisGuyHasTwoThumbs OP似乎正在记录每个视图,而不是摘要计数。@ThisGuyHasTwoThumbs对于视频上的每个视图,我将在videocount
上有一条新记录。但我肯定会通过在videocount
表中添加一个新列views
,然后添加特定数据的所有视图来减少这一点。更新后,这应该可以工作并为您节省很多行。如果我有1000个视频,即使我对所有视频都有点击率,我的表中每天也只有1000条记录,对吗?@Saurabh right。记住,有了适当的索引和适当的硬件,一个SQL表可以处理数十亿行,并在一个月结束后清除该表。太棒了。如果这符合你的需要,当然可以。你也可以在一段时间后把这些指标记下来——也许在一个月后,你会将其存储为每月一次,而不是每天一次。谢谢