digital_human_backend/continew-admin-webapi/src/main/resources/dh_library_item.sql

54 lines
3.8 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.

-- MySQL 8.0 建表语句
-- 库中项目表 - 存储各种类型的库中项目,支持按年龄、性别、场景、语种等维度筛选
drop table if exists dh_library_item;
create table dh_library_item (
`id` bigint not null auto_increment comment '主键ID',
`is_custom` tinyint(1) default 0 comment '是否自定义0-否1-是',
`user_id` varchar(64) not null comment '用户ID',
`type` varchar(32) not null comment '类型',
`name` varchar(128) comment '名称',
`age` varchar(16) comment '年龄youth-青年middle-中年old-老年',
`gender` varchar(16) comment '性别male-男性female-女性',
`scene` varchar(16) comment '场景emotion-情感podcast-播客education-教育',
`language` varchar(16) comment '语种chinese-中文english-英语',
`source_url` varchar(512) not null comment '资源URL',
`cover_url` varchar(512) comment '封面URL',
`create_user` bigint not null comment '创建者',
`create_time` datetime not null default current_timestamp comment '创建时间',
`update_user` bigint comment '更新者',
`update_time` datetime not null default current_timestamp on update current_timestamp comment '更新时间',
`is_deleted` tinyint(1) not null default 0 comment '删除标记0-未删除1-已删除',
primary key (`id`),
-- 单列索引,用于快速筛选
index idx_user_id (`user_id`),
index idx_type (`type`),
index idx_age (`age`),
index idx_gender (`gender`),
index idx_scene (`scene`),
index idx_language (`language`),
index idx_create_time (`create_time`),
index idx_is_deleted (`is_deleted`),
-- 联合索引,用于多条件查询优化
index idx_user_type (`user_id`, `type`),
index idx_age_gender_scene (`age`, `gender`, `scene`),
index idx_gender_scene_language (`gender`, `scene`, `language`)
) engine=innodb default charset=utf8mb4 collate=utf8mb4_0900_ai_ci comment='库中项目表';
-- 示例数据插入语句
insert into dh_library_item (is_custom, user_id, type, name, age, gender, scene, language, source_url, cover_url, create_user) values
(0, '123456', 'voice', '青年男声-情感中文', 'youth', 'male', 'emotion', 'chinese', 'https://example.com/voice/youth-male-emotion-chinese.mp3', 'https://example.com/cover/youth-male.jpg', 1),
(0, '123456', 'voice', '青年女声-播客中文', 'youth', 'female', 'podcast', 'chinese', 'https://example.com/voice/youth-female-podcast-chinese.mp3', 'https://example.com/cover/youth-female.jpg', 1),
(0, '123456', 'voice', '中年男声-教育中文', 'middle', 'male', 'education', 'chinese', 'https://example.com/voice/middle-male-education-chinese.mp3', 'https://example.com/cover/middle-male.jpg', 1),
(0, '123456', 'voice', '中年女声-情感英文', 'middle', 'female', 'emotion', 'english', 'https://example.com/voice/middle-female-emotion-english.mp3', 'https://example.com/cover/middle-female.jpg', 1),
(0, '123456', 'voice', '老年男声-教育英文', 'old', 'male', 'education', 'english', 'https://example.com/voice/old-male-education-english.mp3', 'https://example.com/cover/old-male.jpg', 1),
(1, '789012', 'voice', '自定义声音-青年女声-中文', 'youth', 'female', 'podcast', 'chinese', 'https://example.com/voice/custom-youth-female-chinese.mp3', 'https://example.com/cover/custom.jpg', 2);
-- 查询示例
-- 1. 查询青年男性的中文资源
-- select * from dh_library_item where age = 'youth' and gender = 'male' and language = 'chinese' and is_deleted = 0;
-- 2. 查询情感场景的女声资源
-- select * from dh_library_item where scene = 'emotion' and gender = 'female' and is_deleted = 0;
-- 3. 按创建时间倒序查询自定义资源
-- select * from dh_library_item where is_custom = 1 and is_deleted = 0 order by create_time desc;