代码之家  ›  专栏  ›  技术社区  ›  Jan Hančič

本周收视率最高的视频

  •  2
  • Jan Hančič  · 技术社区  · 14 年前

    我有一个类似YouTube的网页,用户可以上传和观看视频。

    我想在我的页面上添加“本周收视率最高的视频”列表。但这个列表不应该只包含上周上传的视频,而是所有视频。

    我目前正在列中录制视图,因此我不知道何时观看视频。所以现在我正在寻找一个解决方案来记录这些数据。

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

    第二种解决方案没有那么灵活,但在数据库上更容易实现。我会在“视频”表中添加7列(一周中的每一天一列):视图“周一”、“周二”、“周三”… 并根据日期在正确的列中增加值。我会在午夜将当天的列重置为0。通过总结这7个专栏,我可以轻松获得本周收视率最高的视频。

    你认为,我应该为第一个解决方案而烦恼,还是第二个解决方案就足够了?如果您有更好的解决方案,请分享!

    我在使用MySQL。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Geoff    14 年前

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