公共库表结构.md
19.2 KB
有货社区公共库表结构
1. 用户文章表
用户文章表,包含用户种草、逛资讯、晒单、mars、now数据
CREATE TABLE `public_article` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_title` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '文章标题',
`cover_img` varchar(255) DEFAULT NULL COMMENT '文章封面图',
`article_type` tinyint(4) unsigned DEFAULT '1' COMMENT '1-种草用户发布 2-逛资讯 3-mars文章 4-晒单文章 5-now社区;',
`relate_id` int(10) unsigned DEFAULT NULL COMMENT '种草、mars、now原文章id',
`min_relate_id` int(10) unsigned DEFAULT NULL COMMENT '二次同步前的逛资讯、晒单id',
`author_uid` int(10) unsigned DEFAULT '0' COMMENT '作者uid',
`author_type` tinyint(4) DEFAULT '1' COMMENT '作者uid类型 1-有货uid 2-逛小编authorId 3-马甲用户',
`praise_num` int(11) DEFAULT '0' COMMENT '真实点赞数',
`favorite_num` int(11) DEFAULT '0' COMMENT '真实收藏数',
`virtual_praise_num` int(11) DEFAULT '0' COMMENT '马甲点赞数',
`virtual_favorite_num` int(11) DEFAULT '0' COMMENT '马甲收藏数',
`longitude` decimal(12,8) DEFAULT NULL COMMENT '地址经度',
`latitude` decimal(12,8) DEFAULT NULL COMMENT '地址纬度',
`status` tinyint(4) DEFAULT '0' COMMENT '状态 0 草稿,1 正常,2 已删除',
`audit_status` tinyint(4) DEFAULT '1' COMMENT '审核状态:1 未审核,2 审核通过,3 审核未通过',
`publish_time` bigint(13) unsigned NOT NULL COMMENT '发布时间',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `author_uid_index` (`author_uid`),
KEY `audit_status_index` (`audit_status`),
KEY `article_type_index` (`article_type`),
KEY `relate_id_index` (`relate_id`),
KEY `publish_time_index` (`publish_time`),
KEY `update_time_index` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2. 用户文章审核表
CREATE TABLE `public_article_audit` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(11) NOT NULL COMMENT '文章id',
`audit_status` tinyint(4) DEFAULT '1' COMMENT '审核状态:1 未审核,2 审核通过,3 审核未通过',
`audit_account` varchar(50) DEFAULT NULL COMMENT '审核人账号',
`audit_time` bigint(13) unsigned DEFAULT '0' COMMENT '审核时间',
PRIMARY KEY (`id`),
KEY `article_id_index` (`article_id`),
KEY `audit_status_index` (`audit_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
3. 用户文章内容表
用户文章表的从表,记录文章的图片、文字等信息,可支持多种内容格式
CREATE TABLE `public_article_block` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(11) NOT NULL COMMENT '文章id',
`content_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '文章内容',
`content_type` varchar(30) NOT NULL DEFAULT '内容类型' COMMENT 'text-文字 image-图片 video-视频 richText-富文本',
`order_by` int(11) DEFAULT '0' COMMENT '内容排序',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `article_id_index` (`article_id`),
KEY `content_type_index` (`content_type`),
KEY `order_by_index` (`order_by`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
content_data字段数据结构示例:
文本格式:
{
"type": "text",
"content": "这是一篇文章"
}
图片格式:
{
"type": "image",
"url": "http://img12.static.yhbimg.com/article/2019/02/26/16/02456ade977d8dfdbc4ca548b196c1d62b.png",
"actionUrl": "http://guang.m.yohobuy.com/info/index?id=69170&openby:yohobuy={"action":"go.h5","params":{"id":"69170"}}",
"tags": [{
"tagId": 1001,
"positionX": 210,
"positionY": 180
}, {
"tagId": 1002,
"positionX": 250,
"positionY": 150
}],
"isCoverImg": "Y",
"width": 300,
"height": 400
}
视频格式:
{
"type": "video",
"videoUrl": "http://img12.static.yhbimg.com/article/2019/02/26/16/02456ade977d8dfdbc4ca548b196c1d62b.mp4",
"coverImg": "http://img12.static.yhbimg.com/article/2019/02/26/16/02456ade977d8dfdbc4ca548b196c1d62b.png",
"width": 200,
"height": 300,
"duration": 130,
"durationFormat": "02:10",
"size": 15
}
富文本格式:
{
"type": "richText",
"content": "<p class=\"MsoNormal\" align=\"left\"><span style=\"mso-bidi-font-size:10.5pt;font-family:宋体;mso-bidi-font-family:宋体;\nmso-font-kerning:0pt\">随着春夏季的全面来袭,不知道各位小伙伴们是否已经准备好自己的愿望清单呢?随着这几天暗流涌动的潮流圈频频发售新系列的单品,平日藏得严严实实的纹身又可以拿出来在秀一把,几何图案的黑底<span lang=\"EN-US\">T</span>恤,简单的白色短裤,这些元素都将成为你近日最受欢迎的搭配选择。</span><span lang=\"EN-US\" style=\"font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;mso-font-kerning:\n0pt\"><o:p></o:p></span></p>"
}
4. 用户文章关联话题表
用户发布内容时选择的话题,一篇文章只关联一个话题
CREATE TABLE `public_article_topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`topic_id` int(11) NOT NULL COMMENT '话题id',
`article_id` int(11) NOT NULL COMMENT '文章id',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `topic_article_UK` (`topic_id`,`article_id`),
KEY `article_id_index` (`article_id`),
KEY `topic_id_index` (`topic_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
5. 用户文章关联标签表
用户发布内容时给文章打的标签,一篇文章可关联多个标签
CREATE TABLE `public_article_label` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`label_id` int(11) NOT NULL COMMENT '标签id',
`article_id` int(11) NOT NULL COMMENT '文章id',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `label_article_UK` (`label_id`,`article_id`),
KEY `article_id_index` (`article_id`),
KEY `label_id_index` (`label_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
6. 用户文章关联商品表
用户发布内容时给文章关联的商品,一篇文章可关联多个商品
CREATE TABLE `public_article_product` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`article_id` int(11) NOT NULL COMMENT '文章id',
`product_skn` int(11) NOT NULL COMMENT '商品skn',
`product_type` tinyint(4) DEFAULT '1' COMMENT '商品类型 1-有货商品 2-ufo商品 3-全球购商品',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`order_by` int(11) DEFAULT '0' COMMENT '排序',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `product_skn_index` (`product_skn`),
KEY `article_id_index` (`article_id`),
KEY `product_type_index` (`product_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
7. 文章评论表
用户文章评论及评论回复表, 支持无限级回复
CREATE TABLE `public_user_comment` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一标识',
`uid` int(11) unsigned NOT NULL COMMENT '评论者uid',
`to_uid` int(11) DEFAULT '0' COMMENT '被回复者uid',
`article_id` int(11) unsigned DEFAULT NULL COMMENT '评论文章id',
`to_comment_id` int(11) DEFAULT '0' COMMENT '被回复的评论id',
`content_data` text COLLATE utf8mb4_bin COMMENT '评论内容',
`root_id` int(11) unsigned DEFAULT NULL COMMENT '根评论id',
`floor_num` int(11) unsigned DEFAULT NULL COMMENT '楼层',
`relate_id` int(11) unsigned DEFAULT NULL COMMENT '同步评论id(保留字段,同步时使用)',
`relate_parent_id` int(11) unsigned DEFAULT NULL COMMENT '同步父评论(保留字段,同步时使用)',
`praise_num` int(11) unsigned DEFAULT '0' COMMENT '点赞总数',
`virtual_praise_num` int(11) unsigned DEFAULT '0' COMMENT '马甲点赞数',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`audit_status` tinyint(4) unsigned DEFAULT 1 COMMENT '审核状态(审核状态:1-未审核 2-审核通过 3-审核未通过)',
`audit_account` varchar(50) DEFAULT NULL COMMENT '审核者id',
`audit_time` bigint(13) unsigned DEFAULT '0' COMMENT '审核时间',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `uid_index` (`uid`),
KEY `article_id_index` (`article_id`),
KEY `to_comment_id_index` (`to_comment_id`),
KEY `src_channel_index` (`src_channel`),
KEY `audit_status_index` (`audit_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
content_data字段数据结构示例:
[{
"type": "text",
"content": "这是一段评论"
}, {
"type": "image",
"url": "http://img12.static.yhbimg.com/article/2019/02/26/16/02456ade977d8dfdbc4ca548b196c1d62b.jpg",
"width": 100,
"height": 200
}, {
"type": "video",
"videoUrl": "http://img12.static.yhbimg.com/article/2019/02/26/16/02456ade977d8dfdbc4ca548b196c1d62b.mp4",
"coverImg": "http://img12.static.yhbimg.com/article/2019/02/26/16/02456ade977d8dfdbc4ca548b196c1d62b.jpg",
"width": 200,
"height": 300,
"duration": 90,
"durationFormat": "01:30",
"size": 16
}]
8. 用户点赞表
用户对文章/评论的点赞信息,可扩展点赞类型
CREATE TABLE `public_user_praise` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一标识',
`target_id` int(11) unsigned DEFAULT NULL COMMENT '点赞对象id',
`uid` int(11) unsigned DEFAULT NULL COMMENT '点赞者uid',
`praise_type` int(11) unsigned DEFAULT NULL COMMENT '点赞类型 1-对文章点赞 2-对评论点赞',
`status` tinyint(4) unsigned DEFAULT 1 COMMENT '状态(1-已点赞,2-已取消)',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uq_uid_targetId_type` (`uid`,`target_id`,`praise_type`) USING BTREE,
KEY `uid_index` (`uid`),
KEY `target_id_index` (`target_id`),
KEY `praise_type_index` (`praise_type`),
KEY `src_channel_index` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
9. 用户收藏夹
用户收藏的文章分类
CREATE TABLE `public_user_favorite_sheet` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`uid` int(10) NOT NULL DEFAULT '0' COMMENT '用户uid',
`sheet_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收藏夹名称',
`sheet_desc` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '收藏夹简介',
`is_backstage` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否后台发布 0:否,1:是',
`is_private` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否私有,0-否,1-是',
`is_shield` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否屏蔽,屏蔽后仅对自己可见。0:未屏蔽,1:已屏蔽',
`status` tinyint(2) NOT NULL DEFAULT '1' COMMENT '是否删除。1-正常;2-已删除',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `IDX_uid` (`uid`),
KEY `IDX_is_private` (`is_private`),
KEY `IDX_status` (`status`),
KEY `IDX_src_channel` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
10. 用户收藏表
用户收藏的文章,可扩展收藏类型
CREATE TABLE `public_user_favorite` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '唯一标识',
`uid` int(11) unsigned DEFAULT NULL COMMENT '收藏者uid',
`sheet_id` int(11) unsigned DEFAULT NULL COMMENT '收藏文章时的收藏夹id',
`target_id` int(11) unsigned DEFAULT NULL COMMENT '收藏对象id',
`favorite_type` int(11) unsigned DEFAULT NULL COMMENT '收藏类型 1-收藏文章',
`status` tinyint(4) unsigned DEFAULT 1 COMMENT '状态(1-已收藏,2-已取消)',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `uid_index` (`uid`),
KEY `sheet_id_index` (`sheet_id`),
KEY `target_id_index` (`target_id`),
KEY `src_channel_index` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
11. 用户关注表
记录用户关注其他用户或话题
CREATE TABLE `public_user_attention` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`target_id` int(11) NOT NULL COMMENT '被关注的用户或话题id',
`attention_type` tinyint(4) NOT NULL COMMENT '关注类型:1-用户,2-话题',
`author_type` tinyint(4) unsigned DEFAULT NULL COMMENT '作者uid类型 1:有货uid 2:逛小编authorId 3:马甲用户',
`status` tinyint(4) DEFAULT 1 COMMENT '0-已取消 1-已关注 2-互相关注',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uid_targetId_attenType` (`uid`,`target_id`,`attention_type`) USING BTREE,
KEY `uid_index` (`uid`),
KEY `attention_type_index` (`attention_type`),
KEY `target_id_index` (`target_id`),
KEY `src_channel_index` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
12. 用户分享表
记录用户分享的文章、话题、个人主页等, 可扩展其他关注类型
CREATE TABLE `public_user_share` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`target_id` int(11) NOT NULL COMMENT '被关注的用户或话题id',
`share_type` tinyint(4) NOT NULL COMMENT '分享类型:1-文章 2-话题 3-个人主页',
`status` tinyint(4) DEFAULT 1 COMMENT '0-已取消 1-已关注 2-互相关注',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `uid_index` (`uid`),
KEY `share_type_index` (`share_type`),
KEY `status_index` (`status`),
KEY `src_channel_index` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
13. 话题表
一期只支持普通话题,话题直接没有层级关系。
CREATE TABLE `public_topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`topic_name` varchar(255) NOT NULL COMMENT '话题名称',
`article_amount` int(11) NOT NULL DEFAULT '0' COMMENT '文章数量',
`atten_amount` int(11) NOT NULL DEFAULT '0' COMMENT '关注人数',
`status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态,1-正常,2-已删除',
`relate_id` int(11) unsigned DEFAULT NULL COMMENT '同步之前的话题id',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `topic_name_index` (`topic_name`),
KEY `src_channel_index` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
14. 标签分组表
CREATE TABLE `public_label_group` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_name` varchar(50) NOT NULL COMMENT '标签分组名称',
`label_amount` int(11) DEFAULT '0' COMMENT '所属标签数量',
`status` tinyint(4) DEFAULT 1 COMMENT '状态1-开启,2-关闭',
`relate_id` int(11) unsigned DEFAULT NULL COMMENT '同步之前的标签分组id',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `group_name` (`group_name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
15. 标签表
CREATE TABLE `public_label` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`label_name` varchar(80) COLLATE utf8mb4_bin NOT NULL COMMENT '标签名称',
`group_id` int(11) DEFAULT NULL COMMENT '所属分组id',
`status` tinyint(4) DEFAULT '1' COMMENT '1-开启,2-关闭',
`is_visible` int(255) DEFAULT '1' COMMENT '1-发布时可见;2-不可见',
`relate_id` int(11) unsigned DEFAULT NULL COMMENT '同步之前的标签id',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT 0 COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT 0 COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `label_name` (`label_name`) USING BTREE,
KEY `group_id_index` (`group_id`),
KEY `src_channel_index` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
16. 用户个人主页表
用户个人主页表主要记录用户的类型、状态、关注数、粉丝数、获赞与收藏数
CREATE TABLE `public_user_homepage` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`atten_count` int(11) DEFAULT '0' COMMENT '关注数量',
`fans_count` int(11) DEFAULT '0' COMMENT '粉丝数',
`praise_amount` int(11) DEFAULT '0' COMMENT '获赞总数',
`favorite_amount` int(11) DEFAULT '0' COMMENT '收藏总数',
`signature` varchar(255) DEFAULT NULL COMMENT '种草用户签名',
`user_type` int(11) DEFAULT '1' COMMENT '用户类型,1-普通用户、2-平台小编 3-马甲用户',
`author_id` int(11) DEFAULT NULL COMMENT '逛小编id',
`is_forbidden` tinyint(4) DEFAULT '1' COMMENT '用户类型,1-正常,2-被禁言',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`create_time` bigint(13) unsigned DEFAULT '0' COMMENT '创建时间',
`update_time` bigint(13) unsigned DEFAULT '0' COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uid_type_index` (`uid`,`user_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
17. 马甲用户表
马甲用户表用于标记马甲用户,用于后台发布文章
CREATE TABLE `public_virtual_user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL COMMENT '有货uid',
`user_type` int(10) unsigned NOT NULL COMMENT '用户类型',
`src_channel` tinyint(4) unsigned DEFAULT '1' COMMENT '1-有货种草 2-mars 3-now社区',
`status` int(11) DEFAULT NULL COMMENT '1 正常,2 删除',
`create_time` bigint(13) unsigned DEFAULT '0',
`update_time` bigint(13) unsigned DEFAULT '0',
PRIMARY KEY (`id`),
KEY `uid_index` (`uid`),
KEY `user_type_index` (`user_type`),
KEY `src_channel_index` (`src_channel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;