1

假设我们有一张表格,里面的物品看起来像这样

item_id
item_visits

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

我们如何查询到数据库?

4

2 回答 2

1

抱歉,我误解了这个问题...嗯,当然你需要添加一个名为 VisitTime 的列,它的类型为 datetime。

之后,我建议创建一组视图来帮助您进行查询。例如一个名为 DailyVisit 的视图,其中包含每个项目的日视图量(由日期表示)。

于 2011-10-02T02:23:21.970 回答
1

你的桌子有点混乱。

您不想跟踪项目访问次数。
您只想跟踪访问项目的时间,以及访问者、访问地点和访问项目。

我建议如下:

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
于 2011-10-02T05:06:27.057 回答