Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
本周流行-本月流行-PHP功能_Php_Algorithm - Fatal编程技术网

本周流行-本月流行-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表可以处理数十亿行,并在一个月结束后清除该表。太棒了。如果这符合你的需要,当然可以。你也可以在一段时间后把这些指标记下来——也许在一个月后,你会将其存储为每月一次,而不是每天一次。谢谢