0

さまざまな種類のウィジェットを備えたWebサイトがあるとします。これらのウィジェットは、ユーザーによって「いいね」される可能性があります。さて、測定値として「いいね」を使用して、特定の期間における特定のウィジェットの人気をどのように測定できますか?今日、または今週、月(など)のホットウィジェットを識別できるスクリプトを組み立てることができます。

以前はいいねの合計を集計することを考えていましたが、人気があるのか​​見ないのかは時間に関係がないのかわかりません。

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. 各ユーザーは、ウィジェットを最大1回「いいね」することができます。
  4. 1日より短い期間だけでなく、より長い期間の傾向を追跡できるようにする必要があります。

このテーブルを使用するには、ユーザーがウィジェットを気に入ったときにレコードを挿入します。

結果を取得するには、次のようなコマンドを発行します。

 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 に答える