本周观看次数最多的视频

时间:2010-05-13 12:10:04

标签: mysql database-design

我有一个Youtube网页,供用户上传和观看视频。

我想在本页面添加“本周观看最多的视频”视频列表。但是,此列表不应仅包含上周上传的视频,而是所有视频。

我目前正在列中记录视图,因此我没有关于观看视频的信息。所以现在我正在寻找如何记录这些数据的解决方案。

第一个是最明显的(据我所知,是正确的):有一个单独的表,每次你想要记录一个新视图时插入一个新行(存储视频的ID和时间戳)。我担心我会很快在这个表中获得大量数据,使用这个表的查询会非常慢(我们每个月可以获得大约300万次查看)。

第二种解决方案并不灵活,但在数据库上更容易。我会在“视频”表中添加7列(每周一天):views_monday,views_tuesday,views_wednesday,... 并根据日期增加正确列中的值。我会在午夜将当天的列重置为0。然后我可以通过总结这7列来轻松获得本周观看次数最多的视频。

您如何看待,我应该为第一个解决方案而烦恼,还是第二个解决方案能满足我的需求?如果您有更好的解决方案,请分享!

我正在使用MySQL。

1 个答案:

答案 0 :(得分:3)

您还可以创建一个包含日期,视频ID和查看次数的表格。每次观看视频时,您只需增加天数视图计数(或者如果不存在则创建记录)。这样,每个视频每天只有一条记录。您可以通过查询此表轻松地计算上周/月/年的计数。