0

假设我有一个包含各种小部件的网站。这些小部件受用户“喜欢”的影响。那么,我如何能够使用“喜欢”作为衡量标准来衡量任何给定小部件在特定时间跨度内的受欢迎程度?我可以组装能够辨别今天或本周、本月(等等)的热门小部件的脚本。

我之前想只统计总喜欢,但这无法告诉我它是否受欢迎或不知道如何与时间无关。

4

1 回答 1

3
 CREATE TABLE WidgetLikes (
     WidgetID INTEGER NOT NULL REFERENCES Widgets(WidgetID), 
     UserID   VARCHAR(20) NOT NULL REFERENCES Users(UserID),
     LikedAt DATETIME NOT NULL,
     PRIMARY KEY (WidgetID, UserID)
 );

这假设:

  1. Widgets 表包含一个小部件列表,并具有一个称为 WidgetID 的整数主键。
  2. Users 表包含一个用户列表,并且有一个名为 UserID 的 VARCHAR(20) 主键。
  3. 每个用户最多可以“喜欢”一个小部件一次。
  4. 您希望能够跟踪短于一天和更长时期的趋势。

要使用这个表,只要用户喜欢一个小部件,就插入一条记录。

要获得结果,请发出如下命令:

 SELECT WidgetID, COUNT(UserID) FROM WidgetLikes 
    WHERE LikedAt BETWEEN `2012-09-01 00:00:00` AND `2012-09-03 11:59:59';
于 2012-09-20T05:14:25.810 回答