假设我们有一个表格看起来像这样的
item_id
item_visits
我们应该在此表中添加什么,以便能够根据他们在过去7天内的访问次数对这些项目进行排序。
我们如何向db查询?
答案 0 :(得分:1)
对不起,我误解了这个问题...... 好吧,当然你需要添加一个名为VisitTime的列,其类型为datetime。
之后,我建议创建一组视图来帮助您进行查询。例如,名为DailyVisit的视图,其中包含每个项目的日期视图(由日期指示)。
答案 1 :(得分: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