新闻娱乐类APP的后端核心逻辑总结

一.主要功能:
用户:登录、注册(微信账号登录、手机号登录)、修改、审核
内容:发布、审核、分享、点赞、收藏及置顶热推等相关操作
评论:发布、审核、点赞及热评等相关操作
消息推送:站内信如用户修改结果、内容发布结果、评论审核结果等通知,站外信比如短信、微信通知
后台相关:审核、编辑操作(置顶、热评等操作)、统计

二.主要的表结构:
1.用户相关:
(1)用户登录日志:
CREATE TABLE login_log (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
device varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘设备号’,
ip varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘登录ip’,
version varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘设备号’,
dtu varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘0’ COMMENT ‘渠道号 200:WEB、100: iOS、001:安卓’,
content text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘json字符串,请求字段的合集’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY member_id (member_id),
KEY device (device)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’登录日志表’;

(2)用户注册信息表:存储用户静态数据
CREATE TABLE member (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id,即用户id’,
telephone varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘手机号码’,
union_id varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信union_id’,
open_id varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信open_id’,
origin tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘来源,1-通过手机号码注册,2-通过微信注册’,
source tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘用户注册渠道,1:ios注册,2:安卓注册,3-web注册,4-马甲用户’,
dtu varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘来源渠道(dtu)’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY telephone (telephone),
KEY union_id (union_id),
KEY create_time (create_time),
KEY update_time (update_time),
KEY is_mp (is_mp)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’用户注册表’;

(3)用户基本信息表:动态数据和冗余静态数据
CREATE TABLE member_info (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘用户id, member.id’,
telephone varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘手机号码’,
nickname varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘用户昵称’,
wx_nickname varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信昵称’,
birth varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘生日’,
avatar varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘头像’,
sex tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘性别,0-未知,1-男,2-女’,
age int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘年龄’,
level int(11) NOT NULL DEFAULT ‘1’ COMMENT ‘用户等级’,
freeze_time timestamp NULL DEFAULT NULL COMMENT ‘冻结时间’,
follow_num bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘关注数’,
fan_num bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘粉丝数’,
version varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘当前版本’,
device varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘设备号’,
last_active_time timestamp NULL DEFAULT NULL COMMENT ‘最近一次活跃时间’,
signature varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘签名’,
is_realname tinyint(2) DEFAULT ‘0’ COMMENT ‘是否实名认证,0-否,1-是’,
experience bigint(20) NOT NULL DEFAULT ‘1’ COMMENT ‘经验值’,
irregularity_content_num bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘违规内容数量’,
irregularity_freeze_to timestamp NULL DEFAULT NULL COMMENT ‘冻结上传截止时间’,
position tinyint(2) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘身份:0-普通,1-签约’,
status tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘状态,1-正常,2-未激活,3-冻结’,
is_mp tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否是自媒体’,
is_original tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否原创,0-否,1-是’,
ext text COLLATE utf8mb4_unicode_ci COMMENT ‘扩展信息’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY telephone (telephone),
KEY create_time (create_time),
KEY update_time (update_time),
KEY position (position)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’用户基本信息表’;

(4)用户微信信息表
CREATE TABLE member_wx_info (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
member_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
nickname varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘昵称’,
avatar varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘头像’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
UNIQUE KEY member_id (member_id),
KEY create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’用户微信信息表’;

(5)微信绑定记录表
CREATE TABLE wechat_bind_log (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
union_id varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信union_id’,
open_id varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信open_id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘绑定的用户id’,
wx_nickname varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信昵称’,
sex tinyint(1) NOT NULL DEFAULT ‘0’ COMMENT ‘性别,0-未知,1-男,2-女’,
avatar varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信图像’,
city varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信用户所在城市’,
province varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信用户所在省份’,
country varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信用户所在国家’,
language varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信language’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY union_id (union_id),
KEY member_id (member_id),
KEY open_id (open_id(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’微信绑定记录表’;

(6)用户审核
CREATE TABLE member_info_audit (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
operator_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘操作者id’,
member_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
nickname varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘昵称’,
wx_nickname varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘微信昵称’,
avatar varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘头像’,
signature varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘签名’,
status tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘状态,0-待审核,1-审核驳回,2-审核中,3-审核通过’,
type tinyint(1) NOT NULL DEFAULT ‘1’ COMMENT ‘类型: 1 微信登录;2 用户修改’,
content text COLLATE utf8mb4_unicode_ci COMMENT ‘驳回原因’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY create_time (create_time),
KEY member_status (member_id,status),
KEY uptime_status (update_time,status)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’头像、昵称、签名审核表’;

(7)用户审核队列表
CREATE TABLE member_info_audit_queue (
id bigint(20) NOT NULL AUTO_INCREMENT,
member_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘用户member_id’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id),
KEY index_mem_id (member_id) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

(8)正在被审核的用户队列(审核占坑)
CREATE TABLE member_info_audit_queue_jump (
id bigint(20) NOT NULL AUTO_INCREMENT,
member_info_auidt_queue_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘用户审核队列id’,
audit_member_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘审核者id’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’正在被审核的用户队列(审核占坑)’;

(9)
CREATE TABLE member_msg_push (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id,即用户id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
push_id varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘推送id’,
type tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘平台类型,1-友盟,2-个推’,
status tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘状态,0-无效,1-有效’,
source tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘用户注册渠道,1:ios注册,2:安卓注册,3-web注册\n’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’用户信息推送表’;

2.评论相关表
(1)内容评论表
CREATE TABLE comment (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
content_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘内容id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
ref_comment_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘引用的顶级comment_id’,
rep_comment_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘引用的上一级comment_id’,
rep_member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘回复针对的member(上一级)’,
comment text COLLATE utf8mb4_unicode_ci COMMENT ‘评论内容’,
content text COLLATE utf8mb4_unicode_ci COMMENT ‘内容’,
like_num bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘点赞数’,
reply_num bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘回复数’,
status tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘状态,0-待审核,1-已通过, 2-未通过’,
type tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘类型,1-普通,2-优质’,
is_top tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否置顶,0-否,1-是’,
sort_score bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘排序分数’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
is_hot tinyint(2) DEFAULT NULL COMMENT ‘是否热门评论’,
path varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘资源路径’,
media_id varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘媒体id’,
width int(11) DEFAULT NULL COMMENT ‘宽度’,
height int(11) DEFAULT NULL COMMENT ‘高度’,
grade tinyint(4) DEFAULT NULL COMMENT ‘等级’,
PRIMARY KEY (id) USING BTREE,
KEY ref_comment_id (ref_comment_id) USING BTREE,
KEY content_id (content_id,create_time) USING BTREE,
KEY member_id (member_id,create_time) USING BTREE,
KEY sort_score (sort_score) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’内容评论表’;

(2)评论点赞表
CREATE TABLE comment_like (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
comment_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘评论id’,
content_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘内容id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘点赞人id’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
comment_member_id int(11) NOT NULL COMMENT ‘评论的所属用户id’,
is_cancle tinyint(1) NOT NULL DEFAULT ‘0′ COMMENT ‘是否已取消 :1是 0否 ‘ ,
PRIMARY KEY (id) USING BTREE,
KEY comment_id (comment_id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’评论点赞表’;

3.内容相关:
(1)内容表:
CREATE TABLE content (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
title varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘标题’,
type tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘1-视频, 2-图文, 3-GIF’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘发布者id’,
file_id varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
status tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘状态,0-上传完成,1-待审,2-驳回,3-审核中,4-通过,5-删除,6-人工废弃,7-系统废弃,8-云处理失败,9-云处理中,10-下线’,
audit_at timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT ‘审核时间’,
audit_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘审核者id’,
approved_at timestamp NULL DEFAULT NULL COMMENT ‘通过时间’,
category int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘分类’,
origin tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘来源,1-安卓录入,2-ios用户录入,3-微视抓取,其他看配置’,
is_recommended tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否推荐,0-否,1-是’,
recommended_at timestamp NULL DEFAULT NULL COMMENT ‘推荐时间’,
is_mp tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否是自媒体视频’,
is_original tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否APP拍摄,0-否,1-是’,
show_type tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘展示类型,0-不在列表展示,1-在列表展示,2-在热推榜’,
content varchar(1000) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ‘内容,json存入,比如审核相关的一些值,cpm等’,
reason_id varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT ‘驳回原因id,多个时用逗号分隔’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY member_id (member_id),
KEY update_time (update_time),
KEY create_time (create_time),
KEY approved_at (approved_at),
KEY audit_id (audit_id,audit_at),
KEY audit_at_status (status,audit_at),
KEY member_status (member_id,status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’内容表’;

(2)内容详情表:
CREATE TABLE content_detail (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
content_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘视频id,即video.id’,
media_id varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘阿里媒体id’,
width int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘宽’,
height int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘高’,
duration decimal(11,6) NOT NULL DEFAULT ‘0.000000’ COMMENT ‘时长’,
path varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘图片路径’,
cover varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘0’ COMMENT ‘封面图’,
type tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘1-视频截图,2-自己上传’,
format varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘文件类型’,
size int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘大小,单位b’,
fps varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘每秒钟帧数’,
bitrate varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘比特率,单位%’,
definition varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘清晰度,xld-低清,ld-普清,sd-标清,hd-高清’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY media_id (media_id(191)),
KEY content_id (content_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’内容详情表’;

(3)内容互动(分享、点赞、收藏等)基本数据表
CREATE TABLE content_interactive_info (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘内容id’,
like_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘收藏人数’,
comment_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘评论人数’,
qq_share_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘qq分享数’,
wx_share_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘微信分享数’,
wxf_share_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘微信朋友圈分享数’,
wb_share_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘微博分享数’,
qq_share_success_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘成功分享qq’,
wx_share_success_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘成功分享微信好友’,
wxf_share_success_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘成功分享微信朋友圈’,
wb_share_success_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘成功分享到微博’,
watch_num int(11) NOT NULL DEFAULT ‘0’ COMMENT ‘查看量’,
hot_title varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘推荐标题’,
hot_cover_image varchar(500) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘推荐封面’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY update_time (update_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’内容互动(分享、点赞、收藏等)基本数据表’;

(4)用户内容点赞表
CREATE TABLE content_like (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
content_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘内容id’,
status tinyint(3) NOT NULL DEFAULT ‘1’ COMMENT ‘0无效 1有效’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY member_content (member_id,content_id) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’用户内容点赞表’;

(5)用户负面反馈表
CREATE TABLE content_negative (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
content_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘内容id’,
content_member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘内容发布者id’,
type tinyint(3) NOT NULL DEFAULT ‘1’ COMMENT ‘类型: 1-屏蔽该作者, 2-内容太差, 详细见配置’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY content_id (content_id),
KEY member_id (member_id),
KEY content_member_id (content_member_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’用户负面反馈表’;

(6)内容分享记录表
CREATE TABLE content_share (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
member_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘用户id’,
content_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘内容id’,
type tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘分享类型,1-QQ,2-微信,3-微信朋友圈,其他看配置’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
KEY member_type (member_id,type),
KEY content_type (content_id,type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’内容分享记录表’;

(7)内容审核日志
CREATE TABLE content_audit_log (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
content_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘内容id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘发布者id’,
type tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘1-视频, 2-图文, 3-GIF’,
category tinyint(2) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘分类id’,
origin tinyint(2) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘来源,1-安卓录入,2-ios用户录入,3-PC抓取’,
content_source tinyint(2) unsigned NOT NULL DEFAULT ‘1’ COMMENT ‘内容来源,1-用户上传,2-微博抓取,3-百度抓取’,
audit_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘审核人id’,
audit_status tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘审核状态’,
reason_id varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ‘1’ COMMENT ‘驳回原因id,多个时用逗号分隔’,
content varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘审核描述信息’,
is_first tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否优先审核,0不是,1是’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
UNIQUE KEY content_id (content_id),
KEY member_id (member_id),
KEY category (category),
KEY create_time (create_time),
KEY origin (origin),
KEY type (type),
KEY content_source (content_source),
KEY audit_id (audit_id),
KEY audit_status (audit_status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’内容审核日志’;

(8)内容待审核队列表
CREATE TABLE content_audit_queue (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
content_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘内容id’,
member_id bigint(20) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘发布者id’,
type tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘1-视频, 2-图文, 3-GIF’,
category tinyint(2) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘分类id’,
origin tinyint(2) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘来源,1-安卓录入,2-ios用户录入,3-PC抓取’,
content_source tinyint(2) unsigned NOT NULL DEFAULT ‘1’ COMMENT ‘内容来源,1-用户上传,2-微博抓取,3-百度抓取’,
is_first tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘是否优先审核,0不是,1是’,
publish_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘内容发布时间’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
UNIQUE KEY content_id (content_id),
KEY member_id (member_id),
KEY category (category),
KEY create_time (create_time),
KEY origin (origin),
KEY type (type) USING BTREE,
KEY content_source (content_source) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’内容待审核队列表’;

(9)正在被审核的内容队列(审核人员占坑)表
CREATE TABLE content_audit_queue_jump (
id bigint(20) NOT NULL AUTO_INCREMENT,
content_audit_queue_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘内容审核队列表的id’,
audit_member_id int(10) NOT NULL COMMENT ‘审核人id’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=’正在被审核的内容队列(审核人员占坑)表’;

4.敏感词相关
(1)敏感词表
CREATE TABLE sensitive_word (
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键ID’,
name varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘名称’,
status tinyint(2) NOT NULL DEFAULT ‘1’ COMMENT ‘状态,1有效,0无效’,
level smallint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘级别’,
operation tinyint(2) NOT NULL DEFAULT ‘0’ COMMENT ‘处理方式,1先发后审,2先审后发’,
scene varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ” COMMENT ‘应用场景,1:昵称,2:评论,3:签名,4:标题,多个以英文,分割’,
admin_id bigint(20) NOT NULL DEFAULT ‘0’ COMMENT ‘操作人,admin.id’,
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘添加时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
PRIMARY KEY (id),
UNIQUE KEY name (name) USING BTREE,
KEY admin_id (admin_id),
KEY status (status),
KEY time (create_time,update_time) USING BTREE,
KEY scene (scene) USING BTREE,
KEY operation (operation) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT=’敏感词’;

三.补充说明:
1.基本上核心逻辑就在表的设计中,还有其他附属功能如积分体系、等级体系等需要加表的,扩展起来也容易
2.为了提高请求速度和并发可适当配合ES和redis,如将用户信息保存在redis中,内容、评论等可保存在ES中
3.内容如视频、图片此处用到了阿里的媒体服务,首先会上传到阿里的服务器获得media_id(资源唯一id),这期间的轮转状态比较复杂,需要开发考虑全面。

posted on 2019-01-02 13:44 Ryanyanglibin 阅读() 评论() 编辑 收藏

版权声明:本文为ryanlamp原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ryanlamp/p/10208129.html