表设计
所有表都有字段
字段名 | 类型 | 长度 | 是否可以为空 | 描述 |
---|---|---|---|---|
createtime | datetime | 是 | 创建时间 | |
updatetime | datetime | 是 | 修改时间 | |
create_by | bigint | 否 | 创建人id | |
update_by | bigint | 否 | 修改人id | |
is_deleted | bit | 1 | 否 | 软删除(0删除,1不删除,默认为0) |
后面表格中不会在写这些字段,建表时每个表都有
字段名 | 类型 | 长度 | 是否可以为空 | 描述 |
---|---|---|---|---|
id | bigint | 否 | 文章id | |
content | text | 否 | 动态\文章内容 | |
type | bit | 否 | 类型(0是文章1是动态) | |
location | varchar | 255 | 否 | 地理位置 |
is_original | bit | 否 | 是否为原创(0 原创,1转发) | |
forward_count | int | 否 | 转发次数 | |
comment_count | int | 否 | 评论次数 | |
like_count | int | 否 | 点赞次数 | |
pid | bigint | 是 | 来源文章/动态id(即转发自文章id) |
已发布动态不能修改,只能删除,图片地址用json即可
评论、点赞、转发数用redis缓存,不用维护字段,若redis没则再从三表中查询一次存入redis中即可。
若文章被转发时,在转发人的id下存入一篇新的文章,并存入上级文章id(转发自谁)
转发文章也算到本人的动态或文章中,用字段标识是否为转发。
- 图片sy_tweet_img
字段名 | 类型 | 长度 | 是否可以为空 | 描述 | |
---|---|---|---|---|---|
id | bigint | 否 | 主键 | ||
img_url | varchar | 255 | 否 | 图片地址 | |
tweet_id | bigint | 否 | 文章id |
- 评论表sy_comment
字段名 | 类型 | 长度 | 是否可以为空 | 描述 |
---|---|---|---|---|
id | bigint | 否 | 主键id | |
tweet_id | bigint | 否 | 动态id | |
pid | typeint | 是 | 上级消息id | |
like_count | int | 否 | 点赞次数 |
评论的点赞次数用redis缓存
评论者可以删除自己发的评论,该动态作者也可删除其动态下所有评论
- 点赞表sy_like
字段名 | 类型 | 长度 | 是否可以为空 | 描述 |
---|---|---|---|---|
id | bigint | 否 | 点赞id | |
tweet_id | bigint | 否 | 动态id | |
comment_id | typeint | 是 | 评论id |
给动态点赞时不用存入评论id,给消息点赞时需要存入动态和评论id
- 用户关系表t_user_relation
当用户关注其他用户后会加入到关系表中
字段名 | 类型 | 长度 | 是否可以为空 | 描述 |
---|---|---|---|---|
id | bigint | 否 | 主键id | |
user_id | bigint | 否 | 用户编号 | |
follow_id | bigint | 否 | 被关注者编号 | |
visit_count | int | 否 | 访问次数 |
查询互关好友时 先查询关注自己的好友,然后查询自己关注的好友存入集合中,取交集。
不再存入关系字段
不用记录访问次数,不再展示最长访问好友,好友默认按添加时间倒序排序