2016/06/27

网站文章今日本周本月热文实现方法


新建一个用户点击统计表read_count, 主要字段有:

blog_id 文章id
read_total 总点击数
day_total 天点击数
week_total 周点击数
month_total 月点击数
last_read 最后一次点击时间(时间戳)

当文章被点击一次时:

  1. read_total数量加1。
  2. 校验当前点击时间和 last_read 时间是否为同一天,如果是则 day_total 数量加1,否则 day_total 重置为1。
  3. 校验当前点击时间和 last_read 时间是否为同一周,如果是则 week_total 数量加1,否则 week_total 重置为1。
  4. 校验当前点击时间和 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