广场功能
- 发状态
- 评论状态(回复评论)
- 状态、评论赞同或反对
- 消息提醒
KVDB设计
▍状态信息记录
uid根据时间戳生成的唯一的倒序值,uid = 未来某个时间戳-当前时间戳(就取3000年吧,如果高小恋到时候还没死的话),KVDB的get请求自动从大到小排序。
▍用户状态记录
记录用户所发状态,uid根据时间倒序,用于加载用户自己发布的状态。
▍评论、回复记录
▍状态赞同、反对记录
▍评论(回复)赞同、反对记录
▍状态关注者记录
状态有新的回复时通知所有follower
▍消息提醒记录
有新的回复或评论时添加消息提醒记录。
场景实现
▍发布状态 记录状态基本信息,用户发帖记录,添加该用户为该状态关注者。分别为
square_post_uid = {postID, content, author_id, timestamp}
square_mypost_userID_uid = {post_id}
square_follow_postID = {user_id, timestamp}
▍评论状态、回复评论 记录评论、回复基本信息,添加评论、回复人为关注者,评论的to_user_id为空。
square_comment_postID_uid = {commentID, to_user_id, from_user_id, content, timestamp}
square_follow_postID = {user_id, timestamp}
▍状态赞同、反对,评论赞同、反对
查询square_likePost_postID_userID或square_disikePost_postID_userID判断是否有已经赞同或反对过。否则
square_likePost_postID_userID = {nickname, timestamp}
square_disikePost_postID_userID = {nickname, timestamp}
…
▍主页提醒
● 广场按钮
根据last_seen时间戳生成uid,获取square_post_uid之后的状态数量,提醒有多少新状态发布。
● 个人主页按钮
根据user_id前缀查询square_notify_userID获取回复提醒数量
点击进入:删除该记录,并根据post_id和comment_id查询状态和评论信息简略显示
▍个人页面
根据user_id前缀查询square_mypost_userID查询自己已发布状态post_id(即uid),默认按post_id排序,即按时间倒序。根据post_id查询对应的状态square_post_uid所有信息并显示。
▍广场页面
根据前缀square_post获取10个最新的状态信息,根据post_id前缀查询square_comment_postID总数,根据square_likePost…等查询likes-dislikes并显示,根据最后一个post_id加载更多。
▍状态页面(顺序还是倒序显示评论?)
根据square_comment_postID前缀查询(默认按时间(uid)倒序)10个最新评论或回复,根据square_likePost…等查询likes-dislikes并显示,根据comment_id加载更多评论。
Talk is cheep,show me the code!
应该还会遇到不少坑,未完待续!
附上CEO产品软文
网友评论