2010-05-13 1365 views
2

我有一个像网页一样的Youtube用户上传&观看视频。本周观看次数最多的视频

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

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

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

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

您认为,我应该打扰第一种解决方案还是第二种解决方案能满足我的情况?如果你有更好的解决方案,请分享!

我正在使用MySQL。

回答

3

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

+0

没有想到这一点。感谢您的想法,将考虑它! – 2010-05-13 12:46:14

+0

+1 - 如果您*只*需要此功能的统计数据,这可能是一个好方法。 – 2010-05-13 12:50:00