假设表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上发现了这些但是......
答案 0 :(得分:1)
问题:假设我有1000个视频,每个视频每天获得100个视图。我的视频观看表每天将有100000条记录。
您是否需要每个视图的完整记录?
您可以使用计数器方法,每天为每个视频存储一行,并在新行进入时简单地增加其值。这足以提供有用的每日分析,而不必为一百万个视频观看存储一百万行。
答案 1 :(得分:0)
在视频观看表中添加名为views
和start_date
的额外列。
点击带有视频的页面,获取视图,增加并更新周开始的地点start_date
。
每周只需要一行。如果您愿意,也可以删除旧周。