Files
admin/db/05_media.sql
2026-07-30 17:33:08 +08:00

54 lines
2.7 KiB
SQL
Raw Permalink 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.
-- ============================================================
-- 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='素材-标签关联';