有时我们希望知道有谁最近访问了当前页面。可以用下面的数据表实现。
字段 | 用途 |
---|---|
page | 被访页面 |
user | 访问用户 |
ip | IP地址 |
created | 创建时间 |
updated | 更新时间 |
可以简单地记录访问用户
INSERT INTO page_view (page, user, ip, updated) VALUES ('page id', 'user id', 'IP', NOW()) ON DUPLICATE KEY UPDATE ip='IP', updated=NOW()
显示最近访问用户时(比如最近的13位),则查询如下
SELECT DISTINCT * FROM page_view ORDER BY updated LIMIT 0,13
另外,我们还需要定期清理冗余数据。可以在每次查询时进行,也可以后台定期执行。
# 删除 7 天前的访问数据 DELETE FROM page_view WHERE updated < DATE_SUB(NOW(), INTERVAL 7 DAY)