新闻娱乐类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),这期间的轮转状态比较复杂,需要开发考虑全面。
新闻娱乐类APP的后端核心逻辑总结的更多相关文章
- 为什么那么多人想开发一元夺宝类app?
别拿你的无知和愚蠢,来证明主观的判断! 国人对一切事物具有怀疑的本性是好的, 但是若不建立于科学的分析方法, 那就是愚昧! 身边有朋友玩夺宝投入较多,产出较少,于是向我求助.想从数据分析的角度知道到底 ...
- 慢牛股票-基于Sencha+Cordova的股票类APP
13,14这两年,我的业余时间都花在了移动互联网技术和股票技术分析上,14年底,终于开发完成慢牛,上线小米应用商店.应用宝.百度应用商店. 慢牛是一款数据分析类的股票APP,提供数据订阅和数据分析 ...
- 分享一下怎么开发一款图片视频类App,秒拍和prisma
第一步,分解短视频App的功能 我们在秒拍官网看到如此描述: [视频拍摄及导入]支持直接拍摄及导入手机本地的视频 [照片电影]照片专属特效,轻松创作照片电影 [MV特效]10余款全新MV特效,让普通视 ...
- iOS开发之资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0+)
今天博客中,我们就来实现一下一些常用资讯类App中常用的分类选择的控件的封装.本篇博客中没有使用到什么新的技术点,如果非得说用到了什么新的技术点的话,那么勉强的说,用到了一些iOS9以后UIColle ...
- iOS开发之常用资讯类App的分类展示与编辑的完整案例实现(Swift版)
上篇博客我们聊了<资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0)>,今天的这篇博客就在上篇博客的基础上做些东西.做一个完整的资讯类App中的分类展示 ...
- 手机也需“绿色环保”,省电类APP或将成为“标配”?
随着移动APP的大幅添加.非常多用户发现,这手机耗电量是越来越大了,在各种娱乐应用.办公应用.社交应用的冲击下,以往两天充一次电都OK.如今一天充一次还不够用,因为续航能力变弱.这也为用户带来 ...
- 雪球、牛股王这种股票类App 到底能否帮你赚到钱?
核心观点 股民这个大群体,是需要区分对待的:其中包含一小部分有自己独立判断能力的投资者和一大群没有自己判断能力(尽管他们经常觉得自己有)的普通散户. 当前的互联网证券类App,确实很难保证帮股民赚到钱 ...
- 社区类 App 如何引导用户发帖和产生内容?
作者:Pmer在路上链接:http://www.zhihu.com/question/25502904/answer/31342246来源:知乎著作权归作者所有,转载请联系作者获得授权. ugc的产出 ...
- 某音乐类App评论相关API的分析及SQL注入尝试
关键字:APIfen.工具使用.sql注入 涉及工具/包:Fiddler.Burpsuite.Js2Py.Closure Compiler.selenium.phantomjs.sqlmap 摘要: ...
随机推荐
- 修改hbuilder背景颜色为护眼模式
复制以下代码,保存为.tmTheme文件导入HBuilder <?xml version="1.0" encoding="UTF-8"?> < ...
- hibernate基本的配置与验证
导入jar包与mysql驱动包 javaBean src/com/crazyit/app/domain/News.java package com.crazyit.app.domain; import ...
- Ruby中puts,print,p的区别
如果字符串的行尾没有包含换行符,puts就会添加一个,但print不会: print会精确打印内容并让光标留在末尾(在某些系统平台,在程序输出的末尾会自动换行): p会输出一个审查字符串,它通常会包含 ...
- Vmware Vsan 部署中如何将非SSD 硬盘标识为SSD
通过SSH 登录ESXi主机 # esxcli storage nmp device list #查询ESXI 发现的存储设备 # esxcli storage nmp satp rule add ...
- jmeter之服务器性能监测
性能测试时,我们的关注点有两部分 1 服务本身:并发 响应时间 QPS 2 服务器的资源使用情况:cpu memory I/O disk等 JMeter的plugins插件可以实现对服务器资源使用情况 ...
- Apache配置对外访问默认路径(域名默认访问路径)
摘抄.同以下博主遇到同样问题,故此记录. 作者:ChasingdreamLY 原文:https://blog.csdn.net/qq_26591517/article/details/80414073 ...
- PHP安装过程中问题详解
安装Apace时我就犯了一个大错误.因为我的母语是JAVA,我以为Tomcat就是Apache.其实不然,Tomcat是给Java用的,处理JSP等的动态页面. 而PHP则是单纯的用Apache安装A ...
- win10安装pytorch
安装gpu版本的pytorch需要三个东西:pytorch(torchvision).cuda.cudnn 相信大家都安装过了anaconda,就不介绍anaconda的安装了 1.安装cuda:从官 ...
- Java - Java入门(2-1am)
第一讲.Java入门 1. 计算机语言是人和计算机进行交互的一种工具,人们通过使用计算机语言编写程序来向计算机施令,计算机则执行程序,并把结果输出给用户. 2. 机器语言:由0.1序列构成的指令码组成 ...
- 如何使用HTML5的WebSocket实现网页与服务器的双工通信(一)
本系列服务端双工通信包括两种实现方式:一.使用Socket构建:二.使用WCF构建.本文为使用Socket构建服务端的双工通信,客户端同样使用Html5的WebSocket技术进行调用. 一.网页客户 ...