功能点设计
比如我喜欢发文章的掘金网站就有点赞的功能,统计文章点赞的总数,用户所有文章的点赞数,因此设计的点赞功能模块具有以下功能点:
- 某篇文章的点赞数
- 用户所有文章的点赞数
- 用户点赞的文章
- 持久化到
MySQL数据库
数据库设计
-
Redis数据库设计
Redis是K-V数据库,没有统一的数据结构,针对不同的功能点设计了不同的K-V存储结构- 用户某篇文章的点赞数 使用
HashMap数据结构,HashMap中的key为articleId,value为Set,Set中的值为用户ID,即HashMap<String, Set<String>> - 用户总的点赞数 使用
HashMap数据结构,HashMap中的key为userId,value为String记录总的点赞数 - 用户点赞的文章 使用
HashMap数据结构,HashMap中的key为userId,value为Set,Set中的值为文章ID,即HashMap<String, Set<String>>
- 用户某篇文章的点赞数 使用
-
MySQL数据库设计 最主要的两张表,
article表和user_like_articlearticle表结构
字段值 字段类型 说明 article_name varchar 文章名字 content blob 文章内容 total_like_count bigint 文章总点赞数

文章详细描述了一个点赞功能的设计,包括Redis中的HashMap数据结构用于存储点赞信息,如用户某篇文章的点赞数、用户总点赞数和用户点赞的文章。同时,介绍了MySQL的表结构设计以及点赞和取消点赞的逻辑实现。此外,还提到了存在的并发问题和分布式环境下的优化需求。
最低0.47元/天 解锁文章
2411

被折叠的 条评论
为什么被折叠?



