如何记录文章的浏览时间?

时间:2016-04-15 08:30:29

标签: php laravel

我使用的是Laravel 5.2 如何记录文章的浏览时间?
stackoverflow.com 的浏览时间一样,
当我刷新时,时间不会变化,
怎么做?

1 个答案:

答案 0 :(得分:1)

如果您正在使用数据库,我建议使用两列构建新表(article_id,views):

CREATE TABLE `stats_articles` (
`article_id` INT NOT NULL,
`views` INT DEFAULT 0
)ENGINE=INNODB;
  

article_id应该是链接到文章表中的id列的外键

然后,在您展示文章的地方,您应该执行sql,这将在views表中增加值stats_articles

INSERT INTO `stats_articles` SET views=1 WHERE article_id=[ARTICLE_ID] ON DUPLICATE KEY UPDATE views=views+1;

此查询尝试使用stats_articles将新记录插入views=1,或者如果已存在,则会增加views值。

现在您需要决定是否要计算文章的每个匹配或限制为Cookie或会话。

为此,在增加db值之前检查用户是否已经看过这篇文章。像这样的伪代码:

if (!cookie or seession for this [article_id] not exists) { // User see this article for a first time
   increase db value
} // if yes, do nothing