使用php显示网页的视图,而不添加到数据库中

eagi6jfj  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(270)

我有一张mysql表 views 用于跟踪网页上的视图。表格的结构如下:

CREATE TABLE views (  
    id int(11) not null auto_increment,
    page int(11) not null,
    pglast DATETIME not null,
    pgviews int(11) default 0,
    primary key(id),
    unique key page (page)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

这个 page 列是所查看页面的id pglast 列用于保存上次访问页面的时间。 pglast 通常看起来像: 2018-12-03 14:57:57 这个 pgviews 列用于保存访问次数,此列通常如下所示: 7 我不是每次访问页面时都添加行,而是简单地添加行 UPDATE 记录:我更新 pglast 列和增量 pgviews 列。
我想要的是:
显示今天、本月和全年的浏览量。
是可以做我想做的,还是我必须为访问添加带有访问日期的行?当然,在页面访问中添加行的缺点是,如果访问量很大,它可能会非常满,而简单地更新记录更具可伸缩性。。。

kupeojn6

kupeojn61#

要完成您想要的,而不必为每次访问添加一行,您可以执行以下操作:

CREATE TABLE views (  
    id int(11) not null auto_increment,
    page int(11) not null,
    pglast DATETIME not null,
    pgviews int(11) default 0,
    pgviews_day int(11) default 0,
    pgviews_month int(11) default 0,
    pgviews_year int(11) default 0,
    primary key(id),
    unique key page (page)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

每次访问都会增加日、月和年的浏览量。运行一个cronjob,分别每天、每月和每年重置pgviews\u day、pgviews\u month和pgviews\u year。

相关问题