Files

54 lines
2.7 KiB
SQL
Raw Permalink Normal View History

2026-07-30 17:33:08 +08:00
-- ============================================================
-- 05_media.sql
-- 素材库:媒体资源、标签
-- 对应 proposal.md 第 6 节
-- ============================================================
-- -----------------------------------------------------------
-- 6.2 素材库
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `www_media` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`filename` VARCHAR(255) NOT NULL COMMENT '原始文件名',
`file_path` VARCHAR(500) NOT NULL COMMENT '存储路径(相对 uploads/',
`file_type` VARCHAR(10) NOT NULL COMMENT '类型: image / video / file',
`mime_type` VARCHAR(50) NOT NULL DEFAULT '' COMMENT 'MIME 类型',
`file_size` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '文件大小(字节)',
`width` INT DEFAULT NULL COMMENT '图片/视频宽度(px',
`height` INT DEFAULT NULL COMMENT '图片/视频高度(px',
`category` VARCHAR(20) NOT NULL DEFAULT 'other' COMMENT '分类: product / banner / news / brand / video / document / other',
`thumbnail_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '缩略图路径(300px 宽)',
`webp_url` VARCHAR(500) NOT NULL DEFAULT '' COMMENT 'WebP 版本路径(图片自动生成)',
`ref_count` INT NOT NULL DEFAULT 0 COMMENT '引用计数',
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
`deleted_at` DATETIME DEFAULT NULL COMMENT '软删除时间',
PRIMARY KEY (`id`),
KEY `idx_category` (`category`),
KEY `idx_filename` (`filename`),
KEY `idx_created` (`created_at`),
KEY `idx_deleted` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='素材库';
-- -----------------------------------------------------------
-- 素材标签
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `www_media_tags` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`tag_name` VARCHAR(50) NOT NULL COMMENT '标签名',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_tag_name` (`tag_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='素材标签';
-- -----------------------------------------------------------
-- 素材-标签多对多关联
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS `www_media_tag_map` (
`media_id` BIGINT UNSIGNED NOT NULL,
`tag_id` BIGINT UNSIGNED NOT NULL,
PRIMARY KEY (`media_id`, `tag_id`),
KEY `idx_tag` (`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='素材-标签关联';