『武汉高校之恋』——广场KVDB设计

广场功能

  • 发状态
  • 评论状态(回复评论)
  • 状态、评论赞同或反对
  • 消息提醒

KVDB设计

状态信息记录
uid根据时间戳生成的唯一的倒序值,uid = 未来某个时间戳-当前时间戳(就取3000年吧,如果高小恋到时候还没死的话),KVDB的get请求自动从大到小排序。

『武汉高校之恋』——广场KVDB设计_第1张图片
状态基本信息

用户状态记录
记录用户所发状态,uid根据时间倒序,用于加载用户自己发布的状态。

用户状态记录

评论、回复记录

『武汉高校之恋』——广场KVDB设计_第2张图片
评论、回复记录

状态赞同、反对记录

『武汉高校之恋』——广场KVDB设计_第3张图片
状态赞同、反对

评论(回复)赞同、反对记录

『武汉高校之恋』——广场KVDB设计_第4张图片
评论(回复)赞同、反对

状态关注者记录
状态有新的回复时通知所有follower

『武汉高校之恋』——广场KVDB设计_第5张图片
状态关注者

消息提醒记录
有新的回复或评论时添加消息提醒记录。

『武汉高校之恋』——广场KVDB设计_第6张图片
消息提醒记录


场景实现

发布状态 记录状态基本信息,用户发帖记录,添加该用户为该状态关注者。分别为

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产品软文

你可能感兴趣的:(『武汉高校之恋』——广场KVDB设计)