新建一个用户点击统计表read_count
, 主要字段有:
blog_id
文章id
read_total
总点击数
day_total
天点击数
week_total
周点击数
month_total
月点击数
last_read
最后一次点击时间(时间戳)
当文章被点击一次时:
read_total
数量加1。- 校验当前点击时间和 last_read 时间是否为
同一天
,如果是则 day_total 数量加1,否则 day_total 重置为1。 - 校验当前点击时间和 last_read 时间是否为
同一周
,如果是则 week_total 数量加1,否则 week_total 重置为1。 - 校验当前点击时间和 last_read 时间是否为
同一月
,如果是则 month_total 数量加1,否则 month_total 重置为1。
现在我们可以通过简单的 sql 语句 获取前N篇的 今日热文,本周热文,本月热文
#假设今天的起始时间和结束时间为:(1466956800, 1467043199)
#今日热文
SELECT * FROM 'read_count' WHERE 'last_read' BETWEEN 1466956800 AND 1467043199 ORDER BY day_total desc LIMIT 0,10