chore(init): Scaffold video platform microservices
This commit is contained in:
+783
@@ -0,0 +1,783 @@
|
||||
-- 1. 创建数据库
|
||||
CREATE DATABASE IF NOT EXISTS `video_auth` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_user` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_content` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_comment` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_recommend` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_admin` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- 2. 认证数据库(video_auth)
|
||||
USE `video_auth`;
|
||||
|
||||
-- 用户认证表
|
||||
CREATE TABLE IF NOT EXISTS `auth_user` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`username` varchar(64) NOT NULL COMMENT '用户名',
|
||||
`password` varchar(256) NOT NULL COMMENT '密码(加密)',
|
||||
`salt` varchar(64) NOT NULL COMMENT '加密盐值',
|
||||
`email` varchar(128) DEFAULT NULL COMMENT '邮箱',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||||
`last_login_ip` varchar(64) DEFAULT NULL COMMENT '最后登录IP',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_username` (`username`),
|
||||
UNIQUE KEY `idx_email` (`email`),
|
||||
UNIQUE KEY `idx_phone` (`phone`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户认证表';
|
||||
|
||||
-- 用户角色表
|
||||
CREATE TABLE IF NOT EXISTS `auth_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '角色名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '角色编码(USER_开头)',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '角色描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色表';
|
||||
|
||||
-- 用户权限表
|
||||
CREATE TABLE IF NOT EXISTS `auth_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '权限名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '权限编码',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '权限描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户权限表';
|
||||
|
||||
-- 用户角色关联表
|
||||
CREATE TABLE IF NOT EXISTS `auth_user_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_role` (`user_id`,`role_id`),
|
||||
CONSTRAINT `fk_aur_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_aur_role` FOREIGN KEY (`role_id`) REFERENCES `auth_role` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表';
|
||||
|
||||
-- 角色权限关联表
|
||||
CREATE TABLE IF NOT EXISTS `auth_role_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`permission_id` bigint NOT NULL COMMENT '权限ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_role_permission` (`role_id`,`permission_id`),
|
||||
CONSTRAINT `fk_arp_role` FOREIGN KEY (`role_id`) REFERENCES `auth_role` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_arp_permission` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限关联表';
|
||||
|
||||
-- OAuth2客户端表
|
||||
CREATE TABLE IF NOT EXISTS `auth_oauth_client` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`client_id` varchar(64) NOT NULL COMMENT '客户端ID',
|
||||
`client_secret` varchar(256) NOT NULL COMMENT '客户端密钥',
|
||||
`client_name` varchar(128) NOT NULL COMMENT '客户端名称',
|
||||
`client_uri` varchar(256) DEFAULT NULL COMMENT '客户端主页',
|
||||
`redirect_uri` varchar(256) DEFAULT NULL COMMENT '重定向URI',
|
||||
`scope` varchar(128) NOT NULL COMMENT '授权范围',
|
||||
`grant_types` varchar(128) NOT NULL COMMENT '授权类型',
|
||||
`access_token_validity` int NOT NULL DEFAULT '3600' COMMENT '访问令牌有效期(秒)',
|
||||
`refresh_token_validity` int NOT NULL DEFAULT '86400' COMMENT '刷新令牌有效期(秒)',
|
||||
`additional_information` text COMMENT '附加信息',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_client_id` (`client_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OAuth2客户端表';
|
||||
|
||||
-- 初始化认证数据
|
||||
INSERT IGNORE INTO `auth_role` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '管理员', 'USER_ADMIN', '系统管理员'),
|
||||
(2, '普通用户', 'USER_NORMAL', '普通用户'),
|
||||
(3, 'VIP用户', 'USER_VIP', 'VIP用户'),
|
||||
(4, '内容创作者', 'USER_CREATOR', '内容创作专用角色');
|
||||
|
||||
INSERT IGNORE INTO `auth_permission` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '视频上传', 'video:upload', '视频上传权限'),
|
||||
(2, '视频管理', 'video:manage', '视频管理权限'),
|
||||
(3, '评论管理', 'comment:manage', '评论管理权限'),
|
||||
(4, '个人资料管理', 'profile:manage', '个人资料管理权限');
|
||||
|
||||
INSERT IGNORE INTO `auth_role_permission` (`role_id`, `permission_id`) VALUES
|
||||
(1, 1), (1, 2), (1, 3), (1, 4),
|
||||
(3, 1), (3, 4),
|
||||
(4, 1), (4, 3), (4, 4);
|
||||
|
||||
INSERT IGNORE INTO `auth_oauth_client` (`client_id`, `client_secret`, `client_name`, `redirect_uri`, `scope`, `grant_types`, `access_token_validity`, `refresh_token_validity`) VALUES
|
||||
('video-web', '$2a$10$oRZ7x/.dW.6Q9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ', '视频网站前端', 'http://localhost:8080', 'all', 'password,refresh_token', 3600, 86400),
|
||||
('video-admin', '$2a$10$oRZ7x/.dW.6Q9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ', '视频管理后台', 'http://localhost:8081', 'all', 'authorization_code,refresh_token', 3600, 86400);
|
||||
|
||||
-- 3. 用户数据库(video_user)
|
||||
USE `video_user`;
|
||||
|
||||
-- 用户信息表
|
||||
CREATE TABLE IF NOT EXISTS `user_info` (
|
||||
`id` bigint NOT NULL COMMENT '用户ID',
|
||||
`nickname` varchar(64) NOT NULL COMMENT '昵称',
|
||||
`avatar` varchar(256) DEFAULT NULL COMMENT '头像URL',
|
||||
`gender` tinyint DEFAULT '0' COMMENT '性别(0:未知,1:男,2:女)',
|
||||
`birthday` date DEFAULT NULL COMMENT '生日',
|
||||
`signature` varchar(256) DEFAULT NULL COMMENT '个性签名',
|
||||
`region` varchar(128) DEFAULT NULL COMMENT '地区',
|
||||
`follower_count` int NOT NULL DEFAULT '0' COMMENT '粉丝数',
|
||||
`following_count` int NOT NULL DEFAULT '0' COMMENT '关注数',
|
||||
`video_count` int NOT NULL DEFAULT '0' COMMENT '视频数',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '获赞数',
|
||||
`coin_count` int NOT NULL DEFAULT '0' COMMENT '硬币数',
|
||||
`favorite_count` int NOT NULL DEFAULT '0' COMMENT '收藏数',
|
||||
`view_count` bigint NOT NULL DEFAULT '0' COMMENT '播放数',
|
||||
`level` tinyint NOT NULL DEFAULT '1' COMMENT '等级',
|
||||
`vip_level` tinyint NOT NULL DEFAULT '0' COMMENT 'VIP等级',
|
||||
`vip_expire_time` datetime DEFAULT NULL COMMENT 'VIP到期时间',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `fk_ui_user` FOREIGN KEY (`id`) REFERENCES `video_auth`.`auth_user` (`id`) ON DELETE CASCADE,
|
||||
KEY `idx_nickname` (`nickname`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户信息表';
|
||||
|
||||
-- 用户统计表(按天)
|
||||
CREATE TABLE IF NOT EXISTS `user_stat_daily` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`stat_date` date NOT NULL COMMENT '统计日期',
|
||||
`follower_increment` int NOT NULL DEFAULT '0' COMMENT '新增粉丝数',
|
||||
`following_increment` int NOT NULL DEFAULT '0' COMMENT '新增关注数',
|
||||
`video_increment` int NOT NULL DEFAULT '0' COMMENT '新增视频数',
|
||||
`like_increment` int NOT NULL DEFAULT '0' COMMENT '新增获赞数',
|
||||
`coin_increment` int NOT NULL DEFAULT '0' COMMENT '新增硬币数',
|
||||
`favorite_increment` int NOT NULL DEFAULT '0' COMMENT '新增收藏数',
|
||||
`view_increment` bigint NOT NULL DEFAULT '0' COMMENT '新增播放数',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_date` (`user_id`,`stat_date`),
|
||||
CONSTRAINT `fk_usd_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户每日统计表';
|
||||
|
||||
-- 用户关注表
|
||||
CREATE TABLE IF NOT EXISTS `user_follow` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`follow_id` bigint NOT NULL COMMENT '关注用户ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_follow` (`user_id`,`follow_id`),
|
||||
KEY `idx_follow` (`follow_id`),
|
||||
CONSTRAINT `fk_uf_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_uf_follow` FOREIGN KEY (`follow_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户关注表';
|
||||
|
||||
-- 用户私信表
|
||||
CREATE TABLE IF NOT EXISTS `user_message` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`sender_id` bigint NOT NULL COMMENT '发送者ID',
|
||||
`receiver_id` bigint NOT NULL COMMENT '接收者ID',
|
||||
`content` text NOT NULL COMMENT '消息内容',
|
||||
`is_read` tinyint NOT NULL DEFAULT '0' COMMENT '是否已读(0:未读,1:已读)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_sender` (`sender_id`),
|
||||
KEY `idx_receiver` (`receiver_id`),
|
||||
KEY `idx_receiver_read` (`receiver_id`,`is_read`),
|
||||
CONSTRAINT `fk_um_sender` FOREIGN KEY (`sender_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_um_receiver` FOREIGN KEY (`receiver_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户私信表';
|
||||
|
||||
-- 用户通知表
|
||||
CREATE TABLE IF NOT EXISTS `user_notification` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`type` tinyint NOT NULL COMMENT '通知类型(1:点赞,2:评论,3:关注,4:系统通知)',
|
||||
`content` text NOT NULL COMMENT '通知内容',
|
||||
`related_id` bigint DEFAULT NULL COMMENT '相关ID',
|
||||
`is_read` tinyint NOT NULL DEFAULT '0' COMMENT '是否已读(0:未读,1:已读)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
KEY `idx_user_read` (`user_id`,`is_read`),
|
||||
CONSTRAINT `fk_un_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户通知表';
|
||||
|
||||
-- 用户设置表
|
||||
CREATE TABLE IF NOT EXISTS `user_setting` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`privacy_level` tinyint NOT NULL DEFAULT '1' COMMENT '隐私等级(1:公开,2:仅关注,3:私密)',
|
||||
`comment_notify` tinyint NOT NULL DEFAULT '1' COMMENT '评论通知(0:关闭,1:开启)',
|
||||
`like_notify` tinyint NOT NULL DEFAULT '1' COMMENT '点赞通知(0:关闭,1:开启)',
|
||||
`follow_notify` tinyint NOT NULL DEFAULT '1' COMMENT '关注通知(0:关闭,1:开启)',
|
||||
`system_notify` tinyint NOT NULL DEFAULT '1' COMMENT '系统通知(0:关闭,1:开启)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_us_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户设置表';
|
||||
|
||||
-- 4. 内容数据库(video_content)
|
||||
USE `video_content`;
|
||||
|
||||
-- 视频分类表
|
||||
CREATE TABLE IF NOT EXISTS `content_category` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '分类名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '分类编码',
|
||||
`parent_id` bigint DEFAULT '0' COMMENT '父分类ID',
|
||||
`level` tinyint NOT NULL DEFAULT '1' COMMENT '分类层级',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`icon` varchar(256) DEFAULT NULL COMMENT '图标',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`),
|
||||
KEY `idx_parent` (`parent_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频分类表';
|
||||
|
||||
-- 视频标签表
|
||||
CREATE TABLE IF NOT EXISTS `content_tag` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '标签ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '标签名称',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频标签表';
|
||||
|
||||
-- 视频信息表
|
||||
CREATE TABLE IF NOT EXISTS `content_video` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`title` varchar(256) NOT NULL COMMENT '视频标题',
|
||||
`description` text COMMENT '视频描述',
|
||||
`cover_url` varchar(256) NOT NULL COMMENT '封面URL',
|
||||
`video_url` varchar(256) NOT NULL COMMENT '视频URL',
|
||||
`duration` int NOT NULL COMMENT '视频时长(秒)',
|
||||
`width` int NOT NULL COMMENT '视频宽度',
|
||||
`height` int NOT NULL COMMENT '视频高度',
|
||||
`format` varchar(32) NOT NULL COMMENT '视频格式',
|
||||
`size` bigint NOT NULL COMMENT '视频大小(字节)',
|
||||
`category_id` bigint NOT NULL COMMENT '分类ID',
|
||||
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0:审核中,1:已发布,2:已下架,3:审核不通过)',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`coin_count` int NOT NULL DEFAULT '0' COMMENT '投币数',
|
||||
`favorite_count` int NOT NULL DEFAULT '0' COMMENT '收藏数',
|
||||
`comment_count` int NOT NULL DEFAULT '0' COMMENT '评论数',
|
||||
`view_count` bigint NOT NULL DEFAULT '0' COMMENT '播放数',
|
||||
`share_count` int NOT NULL DEFAULT '0' COMMENT '分享数',
|
||||
`danmaku_count` int NOT NULL DEFAULT '0' COMMENT '弹幕数',
|
||||
`is_recommend` tinyint NOT NULL DEFAULT '0' COMMENT '是否推荐(0:否,1:是)',
|
||||
`is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶(0:否,1:是)',
|
||||
`publish_time` datetime DEFAULT NULL COMMENT '发布时间',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_status` (`user_id`, `status`),
|
||||
KEY `idx_category_status` (`category_id`, `status`),
|
||||
KEY `idx_recommend` (`is_recommend`),
|
||||
KEY `idx_top` (`is_top`),
|
||||
FULLTEXT KEY `ft_title_desc` (`title`,`description`),
|
||||
CONSTRAINT `fk_cv_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cv_category` FOREIGN KEY (`category_id`) REFERENCES `content_category` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频信息表';
|
||||
|
||||
-- 视频标签关联表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_tag` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`tag_id` bigint NOT NULL COMMENT '标签ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_tag` (`video_id`,`tag_id`),
|
||||
KEY `idx_tag` (`tag_id`),
|
||||
CONSTRAINT `fk_cvt_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvt_tag` FOREIGN KEY (`tag_id`) REFERENCES `content_tag` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频标签关联表';
|
||||
|
||||
-- 视频统计表(按天)
|
||||
CREATE TABLE IF NOT EXISTS `content_video_stat_daily` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`stat_date` date NOT NULL COMMENT '统计日期',
|
||||
`like_increment` int NOT NULL DEFAULT '0' COMMENT '新增点赞数',
|
||||
`coin_increment` int NOT NULL DEFAULT '0' COMMENT '新增投币数',
|
||||
`favorite_increment` int NOT NULL DEFAULT '0' COMMENT '新增收藏数',
|
||||
`comment_increment` int NOT NULL DEFAULT '0' COMMENT '新增评论数',
|
||||
`view_increment` bigint NOT NULL DEFAULT '0' COMMENT '新增播放数',
|
||||
`share_increment` int NOT NULL DEFAULT '0' COMMENT '新增分享数',
|
||||
`danmaku_increment` int NOT NULL DEFAULT '0' COMMENT '新增弹幕数',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_date` (`video_id`,`stat_date`),
|
||||
CONSTRAINT `fk_cvsd_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频每日统计表';
|
||||
|
||||
-- 视频审核记录表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_review` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`reviewer_id` bigint NOT NULL COMMENT '审核员ID',
|
||||
`status` tinyint NOT NULL COMMENT '审核状态(1:通过,2:不通过)',
|
||||
`reason` varchar(256) DEFAULT NULL COMMENT '审核原因',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_reviewer` (`reviewer_id`),
|
||||
CONSTRAINT `fk_cvr_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvr_reviewer` FOREIGN KEY (`reviewer_id`) REFERENCES `video_auth`.`auth_user` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频审核记录表';
|
||||
|
||||
-- 视频点赞表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_like` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user` (`video_id`,`user_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cvl_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvl_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频点赞表';
|
||||
|
||||
-- 视频投币表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_coin` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`amount` int NOT NULL DEFAULT '1' COMMENT '投币数量',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user` (`video_id`,`user_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cvc_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvc_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频投币表';
|
||||
|
||||
-- 用户收藏夹表
|
||||
CREATE TABLE IF NOT EXISTS `content_user_favorite` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '收藏夹ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '收藏夹名称',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '收藏夹描述',
|
||||
`is_private` tinyint NOT NULL DEFAULT '0' COMMENT '是否私有(0:公开,1:私有)',
|
||||
`video_count` int NOT NULL DEFAULT '0' COMMENT '视频数量',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cuf_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户收藏夹表';
|
||||
|
||||
-- 视频收藏表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_favorite` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`favorite_id` bigint NOT NULL COMMENT '收藏夹ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user_favorite` (`video_id`,`user_id`,`favorite_id`),
|
||||
KEY `idx_user_favorite` (`user_id`,`favorite_id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
CONSTRAINT `fk_cvf_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvf_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvf_favorite` FOREIGN KEY (`favorite_id`) REFERENCES `content_user_favorite` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频收藏表';
|
||||
|
||||
-- 弹幕表
|
||||
CREATE TABLE IF NOT EXISTS `content_danmaku` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '弹幕ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`content` varchar(256) NOT NULL COMMENT '弹幕内容',
|
||||
`color` varchar(16) NOT NULL COMMENT '弹幕颜色',
|
||||
`font_size` tinyint NOT NULL COMMENT '字体大小',
|
||||
`position` tinyint NOT NULL COMMENT '位置(0:滚动,1:顶部,2:底部)',
|
||||
`time` float NOT NULL COMMENT '发送时间(秒)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_video_time` (`video_id`,`time`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cd_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cd_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='弹幕表';
|
||||
|
||||
-- 视频播放记录表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_play_record` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`play_time` int NOT NULL DEFAULT '0' COMMENT '播放时长(秒)',
|
||||
`is_finished` tinyint NOT NULL DEFAULT '0' COMMENT '是否看完(0:未看完,1:已看完)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user` (`video_id`,`user_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cvpr_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvpr_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频播放记录表';
|
||||
|
||||
-- 初始化分类数据
|
||||
INSERT IGNORE INTO `content_category` (`id`, `name`, `code`, `parent_id`, `level`, `sort`) VALUES
|
||||
(1, '生活', 'life', 0, 1, 1),
|
||||
(2, '科技', 'tech', 0, 1, 2),
|
||||
(3, '游戏', 'game', 0, 1, 3),
|
||||
(4, '美食', 'food', 0, 1, 4),
|
||||
(5, '音乐', 'music', 0, 1, 5),
|
||||
(6, '影视', 'movie', 0, 1, 6),
|
||||
(7, '知识', 'knowledge', 0, 1, 7),
|
||||
(8, '数码', 'digital', 2, 2, 1),
|
||||
(9, '软件', 'software', 2, 2, 2),
|
||||
(10, '硬件', 'hardware', 2, 2, 3),
|
||||
(11, '手机游戏', 'mobile_game', 3, 2, 1),
|
||||
(12, '电脑游戏', 'pc_game', 3, 2, 2),
|
||||
(13, '主机游戏', 'console_game', 3, 2, 3);
|
||||
|
||||
-- 5. 评论数据库(video_comment)
|
||||
USE `video_comment`;
|
||||
|
||||
-- 评论表
|
||||
CREATE TABLE IF NOT EXISTS `comment` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '评论ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`content` text NOT NULL COMMENT '评论内容',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`reply_count` int NOT NULL DEFAULT '0' COMMENT '回复数',
|
||||
`top_status` tinyint NOT NULL DEFAULT '0' COMMENT '置顶状态(0:普通,1:置顶)',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:删除,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
KEY `idx_video_top` (`video_id`,`top_status`),
|
||||
FULLTEXT KEY `ft_content` (`content`),
|
||||
CONSTRAINT `fk_c_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_c_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论表';
|
||||
|
||||
-- 评论回复表
|
||||
CREATE TABLE IF NOT EXISTS `comment_reply` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '回复ID',
|
||||
`comment_id` bigint NOT NULL COMMENT '评论ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`reply_to_id` bigint DEFAULT NULL COMMENT '回复目标用户ID',
|
||||
`content` text NOT NULL COMMENT '回复内容',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:删除,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_comment` (`comment_id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
KEY `idx_reply_to` (`reply_to_id`),
|
||||
KEY `idx_video_time` (`video_id`, `create_time`),
|
||||
FULLTEXT KEY `ft_content` (`content`),
|
||||
CONSTRAINT `fk_cr_comment` FOREIGN KEY (`comment_id`) REFERENCES `comment` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cr_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`),
|
||||
CONSTRAINT `fk_cr_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cr_reply_to` FOREIGN KEY (`reply_to_id`) REFERENCES `video_user`.`user_info` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论回复表';
|
||||
|
||||
-- 评论点赞表
|
||||
CREATE TABLE IF NOT EXISTS `comment_like` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`comment_id` bigint NOT NULL COMMENT '评论ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`type` tinyint NOT NULL COMMENT '类型(1:评论,2:回复)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_comment_user_type` (`comment_id`,`user_id`,`type`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cl_comment` FOREIGN KEY (`comment_id`) REFERENCES `comment` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cl_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论点赞表';
|
||||
|
||||
-- 6. 推荐数据库(video_recommend)
|
||||
USE `video_recommend`;
|
||||
|
||||
-- 用户兴趣标签表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_user_interest` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`tag_id` bigint NOT NULL COMMENT '标签ID',
|
||||
`weight` float NOT NULL DEFAULT '1.0' COMMENT '权重',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_tag` (`user_id`,`tag_id`),
|
||||
KEY `idx_tag` (`tag_id`),
|
||||
CONSTRAINT `fk_rui_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rui_tag` FOREIGN KEY (`tag_id`) REFERENCES `video_content`.`content_tag` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户兴趣标签表';
|
||||
|
||||
-- 用户行为记录表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_user_behavior` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`behavior_type` tinyint NOT NULL COMMENT '行为类型(1:浏览,2:点赞,3:收藏,4:评论,5:分享,6:完整观看)',
|
||||
`behavior_weight` float NOT NULL DEFAULT '1.0' COMMENT '行为权重',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_video` (`user_id`,`video_id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_user_behavior` (`user_id`,`behavior_type`),
|
||||
KEY `idx_create_time` (`create_time`),
|
||||
CONSTRAINT `fk_rub_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rub_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户行为记录表';
|
||||
|
||||
-- 视频相似度表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_video_similarity` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`similar_video_id` bigint NOT NULL COMMENT '相似视频ID',
|
||||
`similarity` float NOT NULL COMMENT '相似度',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_similar` (`video_id`,`similar_video_id`),
|
||||
KEY `idx_similar_video` (`similar_video_id`),
|
||||
CONSTRAINT `fk_rvs_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rvs_similar_video` FOREIGN KEY (`similar_video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频相似度表';
|
||||
|
||||
-- 用户推荐表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_user_recommendation` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`recommend_type` tinyint NOT NULL COMMENT '推荐类型(1:基于内容,2:协同过滤,3:热门推荐,4:新视频推荐)',
|
||||
`score` float NOT NULL COMMENT '推荐分数',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_video_type` (`user_id`,`video_id`,`recommend_type`),
|
||||
KEY `idx_user_type` (`user_id`,`recommend_type`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
CONSTRAINT `fk_rur_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rur_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户推荐表';
|
||||
|
||||
-- 热门视频表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_hot_video` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`hot_score` float NOT NULL COMMENT '热度分数',
|
||||
`period_type` tinyint NOT NULL COMMENT '周期类型(1:天,2:周,3:月)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_period` (`video_id`,`period_type`),
|
||||
KEY `idx_period_score` (`period_type`,`hot_score`),
|
||||
CONSTRAINT `fk_rhv_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='热门视频表';
|
||||
|
||||
-- 7. 管理后台数据库(video_admin)
|
||||
USE `video_admin`;
|
||||
|
||||
-- 管理员表
|
||||
CREATE TABLE IF NOT EXISTS `admin_user` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '管理员ID',
|
||||
`username` varchar(64) NOT NULL COMMENT '用户名',
|
||||
`password` varchar(256) NOT NULL COMMENT '密码(加密)',
|
||||
`salt` varchar(64) NOT NULL COMMENT '加密盐值',
|
||||
`real_name` varchar(64) DEFAULT NULL COMMENT '真实姓名',
|
||||
`avatar` varchar(256) DEFAULT NULL COMMENT '头像',
|
||||
`email` varchar(128) DEFAULT NULL COMMENT '邮箱',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||||
`last_login_ip` varchar(64) DEFAULT NULL COMMENT '最后登录IP',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_username` (`username`),
|
||||
UNIQUE KEY `idx_email` (`email`),
|
||||
UNIQUE KEY `idx_phone` (`phone`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员表';
|
||||
|
||||
-- 管理员角色表
|
||||
CREATE TABLE IF NOT EXISTS `admin_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '角色名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '角色编码(ADMIN_开头)',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '角色描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员角色表';
|
||||
|
||||
-- 管理员权限表
|
||||
CREATE TABLE IF NOT EXISTS `admin_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '权限名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '权限编码',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '权限描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员权限表';
|
||||
|
||||
-- 管理员角色关联表
|
||||
CREATE TABLE IF NOT EXISTS `admin_user_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`admin_id` bigint NOT NULL COMMENT '管理员ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_admin_role` (`admin_id`,`role_id`),
|
||||
CONSTRAINT `fk_aur_admin` FOREIGN KEY (`admin_id`) REFERENCES `admin_user` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_aur_role` FOREIGN KEY (`role_id`) REFERENCES `admin_role` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员角色关联表';
|
||||
|
||||
-- 角色权限关联表
|
||||
CREATE TABLE IF NOT EXISTS `admin_role_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`permission_id` bigint NOT NULL COMMENT '权限ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_role_permission` (`role_id`,`permission_id`),
|
||||
CONSTRAINT `fk_arp_role` FOREIGN KEY (`role_id`) REFERENCES `admin_role` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_arp_permission` FOREIGN KEY (`permission_id`) REFERENCES `admin_permission` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限关联表';
|
||||
|
||||
-- 操作日志表
|
||||
CREATE TABLE IF NOT EXISTS `admin_operation_log` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`admin_id` bigint DEFAULT NULL COMMENT '管理员ID',
|
||||
`username` varchar(64) DEFAULT NULL COMMENT '用户名',
|
||||
`operation` varchar(64) NOT NULL COMMENT '操作',
|
||||
`method` varchar(128) DEFAULT NULL COMMENT '方法名',
|
||||
`params` text COMMENT '参数',
|
||||
`ip` varchar(64) DEFAULT NULL COMMENT 'IP地址',
|
||||
`status` tinyint DEFAULT NULL COMMENT '状态(0:失败,1:成功)',
|
||||
`error_msg` text COMMENT '错误消息',
|
||||
`operation_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_admin` (`admin_id`),
|
||||
KEY `idx_operation_time` (`operation_time`),
|
||||
CONSTRAINT `fk_aol_admin` FOREIGN KEY (`admin_id`) REFERENCES `admin_user` (`id`) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表';
|
||||
|
||||
-- 系统配置表
|
||||
CREATE TABLE IF NOT EXISTS `admin_system_config` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`config_key` varchar(64) NOT NULL COMMENT '配置键',
|
||||
`config_value` text NOT NULL COMMENT '配置值',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '配置描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_key` (`config_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';
|
||||
|
||||
-- 初始化管理员数据
|
||||
INSERT IGNORE INTO `admin_role` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '超级管理员', 'ADMIN_SUPER', '拥有所有权限'),
|
||||
(2, '内容管理员', 'ADMIN_CONTENT', '内容管理权限'),
|
||||
(3, '用户管理员', 'ADMIN_USER', '用户管理权限'),
|
||||
(4, '系统管理员', 'ADMIN_SYSTEM', '系统配置权限');
|
||||
|
||||
INSERT IGNORE INTO `admin_permission` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '用户管理', 'user:manage', '用户管理权限'),
|
||||
(2, '角色管理', 'role:manage', '角色管理权限'),
|
||||
(3, '权限管理', 'permission:manage', '权限管理权限'),
|
||||
(4, '视频管理', 'video:manage', '视频管理权限'),
|
||||
(5, '评论管理', 'comment:manage', '评论管理权限'),
|
||||
(6, '标签管理', 'tag:manage', '标签管理权限'),
|
||||
(7, '分类管理', 'category:manage', '分类管理权限'),
|
||||
(8, '推荐管理', 'recommend:manage', '推荐管理权限'),
|
||||
(9, '系统配置', 'system:config', '系统配置权限'),
|
||||
(10, '操作日志', 'operation:log', '操作日志权限');
|
||||
|
||||
INSERT IGNORE INTO `admin_role_permission` (`role_id`, `permission_id`) VALUES
|
||||
(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10),
|
||||
(2, 4), (2, 5), (2, 6), (2, 7), (2, 8),
|
||||
(3, 1),
|
||||
(4, 9), (4, 10);
|
||||
|
||||
-- 初始化超级管理员账号(密码:admin123)
|
||||
INSERT IGNORE INTO `admin_user` (`id`, `username`, `password`, `salt`, `real_name`, `email`, `phone`, `status`) VALUES
|
||||
(1, 'admin', '$2a$10$oRZ7x/.dW.6Q9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ', 'abcdefg', '超级管理员', 'admin@nuaa.edu.cn', '13800138000', 1);
|
||||
|
||||
INSERT IGNORE INTO `admin_user_role` (`admin_id`, `role_id`) VALUES
|
||||
(1, 1);
|
||||
|
||||
-- 初始化系统配置
|
||||
INSERT IGNORE INTO `admin_system_config` (`config_key`, `config_value`, `description`) VALUES
|
||||
('site_name', '南航在线视频平台', '网站名称'),
|
||||
('site_logo', '/static/logo.png', '网站Logo'),
|
||||
('site_favicon', '/static/favicon.ico', '网站图标'),
|
||||
('site_copyright', 'Copyright © 2024 南京航空航天大学', '版权信息'),
|
||||
('video_upload_limit', '1024', '视频上传大小限制(MB)'),
|
||||
('video_review_enabled', '1', '视频审核开关(0:关闭,1:开启)'),
|
||||
('comment_review_enabled', '0', '评论审核开关(0:关闭,1:开启)'),
|
||||
('user_register_enabled', '1', '用户注册开关(0:关闭,1:开启)');
|
||||
Reference in New Issue
Block a user