CREATE DATABASE `neteaseMusic`; USE `neteaseMusic`; CREATE TABLE `song` ( `song_id` bigint(20) unsigned NOT NULL COMMENT '歌曲id', `title` varchar(500) NOT NULL COMMENT '歌曲名', `type` tinyint(4) NOT NULL COMMENT ' 0: 一般类型 1: 通过云盘上传的音乐,网易云不存在公开对应 2: 通过云盘上传的音乐,网易云存在公开对应', `alias` json DEFAULT NULL COMMENT '歌曲别名(JSON格式数组)', `pop` float DEFAULT NULL COMMENT '歌曲热度', `fee` tinyint(4) DEFAULT NULL COMMENT '版权 0: 免费或无版权 1: VIP 歌曲 4: 购买专辑 8: 非会员可免费播放低音质,会员可播放高音质及下载 fee 为 1 或 8 的歌曲均可单独购买 2 元单曲', `quality` varchar(500) NOT NULL COMMENT '高/中/低/无损质量文件信息', `cd` varchar(255) NOT NULL COMMENT 'None或如"04", "1/2", "3", "null"的字符串,表示歌曲属于专辑中第几张CD,对应音频文件的Tag', `no` int(11) DEFAULT NULL COMMENT '表示歌曲属于CD中第几曲,0表示没有这个字段,对应音频文件的Tag', `dj_id` int(10) unsigned DEFAULT NULL COMMENT '0: 不是DJ节目 其他:是DJ节目,表示DJ ID', `s_id` int(10) unsigned DEFAULT NULL COMMENT '对于t == 2的歌曲,表示匹配到的公开版本歌曲ID', `origin_cover_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0: 未知 1: 原曲 2: 翻唱', `image` varchar(200) DEFAULT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分', `pub_date` varchar(100) DEFAULT NULL COMMENT '发布日期(弃用)', `pub_time` varchar(100) DEFAULT NULL COMMENT '发布日期 毫秒为单位的Unix时间戳', `mv` int(10) unsigned DEFAULT NULL COMMENT '非零表示有MV ID', `single` tinyint(4) DEFAULT NULL COMMENT '0: 有专辑信息或者是DJ节目 1: 未知专辑', `version` int(11) NOT NULL DEFAULT '1' COMMENT '歌曲版本信息', `no_copyright_rcmd` varchar(255) DEFAULT NULL COMMENT 'None表示可以播,非空表示无版权', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', `data_version` tinyint(4) NOT NULL DEFAULT '1' COMMENT '数据记录版本(如果有字段调整则整体+1)', PRIMARY KEY (`song_id`), KEY `song_id` (`song_id`), KEY `data_version` (`data_version`) ); CREATE TABLE `artist` ( `artist_id` bigint(20) unsigned NOT NULL COMMENT '歌手id', `title` varchar(200) NOT NULL COMMENT '歌手名', `description` varchar(1500) NOT NULL COMMENT '歌手简介', `image` varchar(200) NOT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分', `pub_date` varchar(100) NOT NULL COMMENT '发布日期', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`artist_id`), KEY `artist_id` (`artist_id`) ); CREATE TABLE `album` ( `album_id` bigint(20) unsigned NOT NULL COMMENT '专辑id', `title` varchar(200) NOT NULL COMMENT '专辑名', `description` varchar(1500) NOT NULL COMMENT '专辑简介', `full_description` text COMMENT '专辑简介(全)', `image` varchar(200) NOT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分', `pub_date` varchar(100) NOT NULL COMMENT '发布日期', `company` varchar(100) DEFAULT NULL COMMENT '发行公司', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', `version` tinyint(4) NOT NULL DEFAULT 1 COMMENT '数据记录版本(如果有字段调整则整体+1)', PRIMARY KEY (`album_id`), KEY `album_id` (`album_id`) ); CREATE TABLE `playlist` ( `playlist_id` bigint(20) unsigned NOT NULL COMMENT '歌单id', `title` varchar(200) NOT NULL COMMENT '歌单名', `english_title` varchar(200) DEFAULT NULL COMMENT '歌单名(英文)', `description` varchar(1500) NOT NULL COMMENT '歌单简介', `user_id` bigint(20) unsigned NOT NULL COMMENT '用户id', `tags` json DEFAULT NULL COMMENT '歌单标签(JSON格式数组)', `alg_tags` json DEFAULT NULL COMMENT '歌单标签(JSON格式数组)', `playlist_create_time` bigint(20) unsigned DEFAULT NULL COMMENT '创建日期', `playlist_update_time` bigint(20) unsigned DEFAULT NULL COMMENT '更新日期', -- 数据 `track_count` int(10) unsigned NOT NULL COMMENT '歌单歌曲数', `play_count` bigint(20) unsigned NOT NULL COMMENT '歌单播放数', `subscribed_count` int(10) unsigned NOT NULL COMMENT '歌单收藏数', `share_count` int(10) unsigned NOT NULL COMMENT '歌单分享数', `comment_count` int(10) unsigned NOT NULL COMMENT '歌单评论数', -- 封面图 `cover_image` varchar(200) NOT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分', `title_image` varchar(200) DEFAULT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分', `background_cover` varchar(200) DEFAULT NULL COMMENT '封面图 http://p1.music.126.net/ 后面的部分', -- 状态码 `ordered` tinyint(4) NULL COMMENT '排序 0-false 1-true', `copied` tinyint(4) NULL COMMENT '是否复制 0-false 1-true', `status` tinyint(4) DEFAULT NULL COMMENT '保留状态码', `privacy` tinyint(4) DEFAULT NULL COMMENT '保留状态码', `ad_type` tinyint(4) DEFAULT NULL COMMENT '保留状态码', `special_type` int(11) DEFAULT NULL COMMENT '保留状态码', `official_playlist_type` varchar(20) DEFAULT NULL COMMENT '保留状态码', `op_recommend` tinyint(4) DEFAULT NULL COMMENT '保留状态码 0-false 1-true', `high_quality` tinyint(4) DEFAULT NULL COMMENT '保留状态码 0-false 1-true', `new_imported` tinyint(4) DEFAULT NULL COMMENT '保留状态码 0-false 1-true', `update_frequency` varchar(100) DEFAULT NULL COMMENT '保留字段', `grade_status` varchar(20) DEFAULT NULL COMMENT '保留字段', `score` varchar(20) DEFAULT NULL COMMENT '保留字段', -- 后期调整字段 `creator` json DEFAULT NULL COMMENT '保留字段(JSON格式数组)', `video_ids` json DEFAULT NULL COMMENT '保留字段(JSON格式数组)', `videos` json DEFAULT NULL COMMENT '保留字段(JSON格式数组)', `banned_track_ids` json DEFAULT NULL COMMENT '保留字段(JSON格式数组)', `remix_video` json DEFAULT NULL COMMENT '保留字段(JSON格式数组)', -- 数据信息 `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', `related_playlist` json NULL COMMENT '是否获取了相关歌单', PRIMARY KEY (`playlist_id`), KEY `playlist_id` (`playlist_id`) ); CREATE TABLE `song_playlist_relation` ( `song_id` bigint(20) unsigned NOT NULL COMMENT '歌曲id', `playlist_id` bigint(20) unsigned NOT NULL COMMENT '歌单id', `is_del` tinyint(4) NOT NULL DEFAULT 0 COMMENT '歌曲是否从歌单中删除 0-未删除 1-删除', `alg` varchar(20) DEFAULT NULL COMMENT '保留字段', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`song_id`, `playlist_id`), KEY `song_id` (`song_id`), KEY `playlist_id` (`playlist_id`) ); CREATE TABLE `song_album_relation` ( `song_id` bigint(20) unsigned NOT NULL COMMENT '歌曲id', `album_id` bigint(20) unsigned NOT NULL COMMENT '专辑id', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`song_id`,`album_id`), KEY `song_id` (`song_id`), KEY `album_id` (`album_id`) ); CREATE TABLE `song_artist_relation` ( `song_id` bigint(20) unsigned NOT NULL COMMENT '歌曲id', `artist_id` bigint(20) unsigned NOT NULL COMMENT '歌手id', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY `song_id` (`song_id`,`artist_id`), KEY `song_id` (`song_id`), KEY `artist_id` (`artist_id`) ); CREATE TABLE `lyric` ( `song_id` bigint(20) unsigned NOT NULL COMMENT '歌曲id', `version` int(10) unsigned NOT NULL COMMENT '歌词版本 -1代表没有数据', `lyric` text NOT NULL COMMENT '歌词', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`song_id`,`version`), KEY `song_id` (`song_id`) ); CREATE TABLE `user` ( `user_id` bigint(20) unsigned NOT NULL COMMENT '用户id', `user_type` varchar(50) NOT NULL COMMENT '用户类型', `nickname` varchar(200) NOT NULL COMMENT '用户昵称', `avatar_url` varchar(200) NOT NULL COMMENT '用户头像 http://p1.music.126.net/ 后面的部分', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`user_id`), KEY `user_id` (`user_id`) ); CREATE TABLE `comment` ( `comment_id` bigint(20) unsigned NOT NULL COMMENT '评论id', `parent_comment_id` bigint(20) unsigned NOT NULL COMMENT '父评论id', `user_id` bigint(20) unsigned NOT NULL COMMENT '用户id', `song_id` bigint(20) unsigned NOT NULL COMMENT '歌曲id', `content` text NOT NULL COMMENT '评论内容', `time` varchar(50) NOT NULL DEFAULT '' COMMENT '评论时间', `like_count` int(11) NOT NULL COMMENT '点赞数', `comment_type` tinyint(4) unsigned NOT NULL COMMENT '评论类型 0-comments 1-hotComments 2-topComments', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`comment_id`), KEY `song_id` (`song_id`), KEY `user_id`(`user_id`) ); CREATE TABLE `comment_progress` ( `song_id` bigint(20) unsigned NOT NULL COMMENT '歌曲id', `max_time` bigint(20) NOT NULL DEFAULT 0 COMMENT '开始爬取/开始增量爬取的时候 最新一条评论的时间', `min_time` bigint(20) NOT NULL DEFAULT 0 COMMENT '上一次爬取时最后一条评论的时间 第一次爬取时为0', `current_time` bigint(20) NOT NULL DEFAULT 0 COMMENT '本次爬取/增量时,最早的一条评论时间', `current_status` tinyint(4) unsigned NOT NULL DEFAULT 0 COMMENT '爬取进度 0-等待爬取/增量爬取 1-爬取中 2-完成', `total` int(10) NOT NULL DEFAULT 0 COMMENT '评论总数', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', PRIMARY KEY (`song_id`), INDEX `current_status` (`current_status`), INDEX `song_id` (`song_id`) ); CREATE TABLE `category` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '分类id', `title` varchar(255) NOT NULL COMMENT '分类名称', `netease_id` int DEFAULT NULL COMMENT '网易音乐id', `qianqian_id` int DEFAULT NULL COMMENT '千千音乐id', `alias` varchar(255) DEFAULT NULL COMMENT '分类别名', `qianqian_group` varchar(255) DEFAULT NULL COMMENT '千千音乐 分类所属分组', `qianqian_group_chinese` varchar(255) DEFAULT NULL COMMENT '千千音乐 分类所属分组(中文)', `netease_group_chinese` varchar(255) DEFAULT NULL COMMENT '网易音乐 分类所属分组(中文)', PRIMARY KEY (`id`), UNIQUE KEY `title` (`title`) ); CREATE TABLE `log` ( `id` int(10) unsigned NOT NULL COMMENT 'id', `name` varchar(200) NOT NULL COMMENT '方法/数据库', `msg` varchar(200) NOT NULL COMMENT '出错信息', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '爬取时间', KEY `id` (`id`) ); CREATE TABLE `analysis` ( `key` varchar(255) NOT NULL COMMENT '参数名', `value` varchar(255) DEFAULT NULL COMMENT '参数值', `modify_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', UNIQUE KEY `key` (`key`) ); CREATE TABLE `wait_check_song` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', PRIMARY KEY (`id`) ); CREATE TABLE `wait_check_artist` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', PRIMARY KEY (`id`) ); CREATE TABLE `wait_check_album` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', PRIMARY KEY (`id`) ); CREATE TABLE `wait_check_lyric` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', PRIMARY KEY (`id`) ); CREATE TABLE `wait_check_comment` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', PRIMARY KEY (`id`) ); CREATE TABLE `wait_fetch_song` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', `partition` tinyint(4) unsigned DEFAULT NULL COMMENT '分区 0-4', PRIMARY KEY (`id`) ); CREATE TABLE `wait_fetch_artist` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', `partition` tinyint(4) unsigned DEFAULT NULL COMMENT '分区 0-4', PRIMARY KEY (`id`) ); CREATE TABLE `wait_fetch_album` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', `partition` tinyint(4) unsigned DEFAULT NULL COMMENT '分区 0-4', PRIMARY KEY (`id`) ); CREATE TABLE `wait_fetch_lyric` ( `id` bigint(20) unsigned NOT NULL COMMENT 'id', `partition` tinyint(4) unsigned DEFAULT NULL COMMENT '分区 0-4', PRIMARY KEY (`id`) );