我使用的是Laravel 5.2
如何记录文章的浏览时间?
与 stackoverflow.com 的浏览时间一样,
当我刷新时,时间不会变化,
怎么做?
答案 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