18.1 掌握文章管理
18.1.1 评论功能
18.1.1.1 掌握评论表设计
18.1.1.2 掌握评论数量+1
实现思路:
每当有用户评论,使用ajax添加一条数据到评论表,入库成功之后,在redis中把缓存的评论数自增1,并把值返回给前端页面进行展示
18.1.2 点赞功能
18.1.2.1 掌握点赞表设计
18.1.2.2 掌握点赞数量+1,以及前端无刷新效果
实现思路:
用户点击点赞按钮,使用ajax添加一条数据到点赞表,入库成功之后,在redis中把缓存的点赞数自增1,为防止一个用户短时间内多次点赞,在入库之前先根据当前用户id查询一下redis中是否缓存有用户的信息,如果有则直接返回,如果没有则添加数据库,并把用户信息记录下来,过期时间随具体需求设置,操作完成后把值返回给前端页面进行展示
18.1.3 回复功能
18.1.3.1 掌握回复表设计
18.1.3.2 掌握评论回复之间的关联关系
由于我们拆分了评论和回复,那么评论表就不再需要目标用户字段了,因为评论均是用户对文章的评论,评论表的设计更佳简洁了。
回复表添加了一个comment_id字段来表示该回复挂在的评论id,这样设计也是出于性能方面的考虑,我们可以直接通过评论id一次性的找出该评论下的所有回复,然后通过程序来编排回复的显示结构。 通过适当的冗余来提高性能也是常用的优化手段之一。
18.1.4 收藏功能 18.1.4.1 掌握收藏表设计
18.1.4.2 掌握收藏数量+1
实现思路: 用户点击收藏,使用ajax调用收藏接口,使用redis的set去存储用户收藏文章的信息,如果存储成功,则把数据添加到数据库,反之则把数据从redis中清除掉,并把数据库中的数据也清楚点,同时修改收藏的数量
18.1.4.3 掌握我的收藏记录 18.1.5 排行榜 18.1.5.1 掌握通过MySQL实现排行榜 18.1.5.2 掌握使用Redis实现排行榜