CREATE DATABASE IF NOT EXISTS wy_media DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci; USE wy_media; -- ------------------------------ -- 1. 媒体文件信息表(全局媒体文件存储) -- ------------------------------ CREATE TABLE `media_file` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY, `original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名', `file_name` VARCHAR(255) NOT NULL COMMENT '存储文件名(系统生成的唯一文件名)', `file_type` VARCHAR(20) NOT NULL COMMENT '文件类型:image、audio、video', `file_size` BIGINT COMMENT '文件大小(字节)', `bucket_name` VARCHAR(100) NOT NULL COMMENT '存储桶名称', `file_url` VARCHAR(500) NOT NULL COMMENT '文件访问URL', `storage_type` VARCHAR(20) DEFAULT 'oss' COMMENT '存储类型(oss、local、minio等)', `status` TINYINT DEFAULT 0 COMMENT '文件状态:0-正常,1-已删除(逻辑删除)', `md5` VARCHAR(32) COMMENT '文件MD5值', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', INDEX `idx_file_type` (`file_type`), INDEX `idx_bucket_name` (`bucket_name`), INDEX `idx_create_time` (`create_time`), INDEX `idx_md5` (`md5`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='媒体文件信息表'; -- ------------------------------ -- 2. 艺人媒体文件历史记录表(关联artist服务的artist.id、本服务的media_file表) -- ------------------------------ CREATE TABLE `artist_media_history` ( `id` BIGINT AUTO_INCREMENT PRIMARY KEY, `artist_id` INT NOT NULL COMMENT '关联artist服务的artist.id', `media_type` VARCHAR(20) NOT NULL COMMENT '媒体类型: avatar、header_image等', `media_file_id` BIGINT NOT NULL COMMENT '关联本服务的media_file.id', `is_current` TINYINT DEFAULT 0 COMMENT '是否为当前使用版本:0-否,1-是', `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', FOREIGN KEY (`media_file_id`) REFERENCES `media_file` (`id`) ON DELETE RESTRICT, UNIQUE KEY `uk_artist_media_current` (`artist_id`, `media_type`, `is_current`), INDEX `idx_artist_id` (`artist_id`) -- 逻辑关联索引 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='艺人媒体文件历史记录表';