如何根据访问量获得最受欢迎的项目?



假设我们有一个如下所示的条目表

item_id
item_visits

我们应该在这个表中添加什么,以便能够根据他们在过去7天内的访问次数对这些项目进行排序。

我们如何向数据库查询呢?

对不起,我误解了你的问题…当然,你需要添加一个名为VisitTime的列,它的类型是datetime。

之后,我建议创建一组视图来帮助您进行查询。例如,一个名为DailyVisit的视图,它以天为单位(由日期表示)查看每个项目。

你的表有点混乱

您不希望跟踪项目访问的次数。
你只是想记录一个项目是什么时候被访问的,可能是谁访问的,在哪里访问的,是哪个项目。

我建议如下:

table visit
------------
id integer not null primary key auto_increment
item_id integer not null foreign key fk_item_id
        references item(id) on delete cascade on update cascade
visitor_id integer not null foreign key fk_visitor_id
        references visitor(id) on delete cascade on update cascade
visit_date timestamp not null default current_timestamp
engine = InnoDB

这应该给你所有的细节,你需要知道每个项目的访问量,并获得有关项目和游客的详细信息。

-- select total number of visits per item for the last week.
SELECT 
  COUNT(*) as NrOfVisits
  , i.name as ItemName
FROM visit v
INNER JOIN item i ON (v.item_id = i.id)
WHERE v.visit_date BETWEEN now() AND DATE_SUB(now(), INTERVAL 7 DAY)
GROUP BY v.item_id WITH ROLLUP

相关内容

  • 没有找到相关文章

最新更新