php - 本周热门 - 本月热门 - PHP 功能

标签 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

最佳答案

Problem: Suppose I have 1000 Videos and Each video gets 100 Views per day. My videoviews table will have 100000 records each day.

需要每次观看的完整记录吗?

相反,您可以使用计数器方法,每天为每个视频存储一行,并在新行出现时简单地增加其值。这种方法足够精细,可以提供有用的每日分析,而无需为一百万次视频观看存储一百万行。

关于php - 本周热门 - 本月热门 - PHP 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414360/

相关文章:

php 无法通过查询创建新的数据库表

algorithm - 哈希表总是查找 O(n) 时间?

c++ - 用模数环绕网格

algorithm - List.mem 的复杂性

algorithm - 关于堆排序算法的问题

php - laravel 获取带有 where 子句的关系 hasMany 模型

PHP准备语句: Why is this throwing a fatal error?

php - ftp_ssl_connect 与隐式 ftp over tls

c++ - 知道 istream 是否以 C++ 中的字符串开头的惯用方法?

php - 第二个 AJAX 调用卸载第一个的结果