1
0
Code Issues Pull Requests Projects Releases Wiki Activity GitHub Gitee
tools/netease_music/sql/structure.sql

269 lines
14 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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`)
);