功能点设计
比如我喜欢发文章的掘金网站就有点赞的功能,统计文章点赞的总数,用户所有文章的点赞数,因此设计的点赞功能模块具有以下功能点:
- 某篇文章的点赞数
- 用户所有文章的点赞数
- 用户点赞的文章
- 持久化到
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_article
article
表结构
字段值 字段类型 说明 article_name varchar 文章名字 content blob 文章内容 total_like_count bigint 文章总点赞数