11-- Data-Engine Platform 数据库初始化脚本
2- -- 适用于现有knowledge_base数据库环境
2+ -- 适用于现有dataengine数据库环境
33
4- -- 使用现有的knowledge_base数据库
5- USE knowledge_base ;
4+ -- 使用现有的dataengine数据库
5+ USE dataengine ;
66
77-- 删除已存在的表(如果需要重新创建)
88-- 原有表名保留,但本脚本新建以 t_dm_ 为前缀的新表,并使用 UUID 主键
99-- 可按需手工迁移旧数据到新表
1010
11+ CREATE TABLE IF NOT EXISTS t_data_sources (
12+ id VARCHAR (36 ) PRIMARY KEY COMMENT ' UUID' ,
13+ name VARCHAR (255 ) NOT NULL COMMENT ' 数据源名称' ,
14+ description TEXT COMMENT ' 数据源描述' ,
15+ type VARCHAR (50 ) NOT NULL COMMENT ' 数据源类型' ,
16+ host TEXT COMMENT ' 主机地址' ,
17+ port TEXT COMMENT ' 端口' ,
18+ database_name TEXT COMMENT ' 数据库名称' ,
19+ username TEXT COMMENT ' 用户名' ,
20+ enabled BOOLEAN DEFAULT FALSE COMMENT ' 是否启用'
21+ ) COMMENT= ' 数据源表(UUID 主键)' ;
1122-- ===========================================
1223-- 数据管理(Data Management)模块表(UUID 主键,t_dm_ 前缀)
1324-- ===========================================
@@ -19,7 +30,7 @@ CREATE TABLE IF NOT EXISTS t_dm_datasets (
1930 description TEXT COMMENT ' 数据集描述' ,
2031 dataset_type VARCHAR (50 ) NOT NULL COMMENT ' 数据集类型:IMAGE/TEXT/QA/MULTIMODAL/OTHER' ,
2132 category VARCHAR (100 ) COMMENT ' 数据集分类:医学影像/问答/文献等' ,
22- data_source_id BIGINT COMMENT ' 关联数据源ID(保留为数值型)' ,
33+ data_source_id VARCHAR ( 36 ) COMMENT ' 关联数据源ID(保留为数值型)' ,
2334 path VARCHAR (500 ) COMMENT ' 数据存储路径' ,
2435 format VARCHAR (50 ) COMMENT ' 数据格式:DCM/JPG/JSON/CSV等' ,
2536 schema_info JSON COMMENT ' 数据结构信息' ,
@@ -40,7 +51,7 @@ CREATE TABLE IF NOT EXISTS t_dm_datasets (
4051 updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ' 更新时间' ,
4152 created_by VARCHAR (255 ) COMMENT ' 创建者' ,
4253 updated_by VARCHAR (255 ) COMMENT ' 更新者' ,
43- FOREIGN KEY (data_source_id) REFERENCES data_sources (id) ON DELETE SET NULL ,
54+ FOREIGN KEY (data_source_id) REFERENCES t_data_sources (id) ON DELETE SET NULL ,
4455 INDEX idx_dm_dataset_type (dataset_type),
4556 INDEX idx_dm_category (category),
4657 INDEX idx_dm_data_source (data_source_id),
@@ -120,7 +131,7 @@ CREATE TABLE IF NOT EXISTS t_dm_dataset_tags (
120131) COMMENT= ' 数据集标签关联表(UUID 外键)' ;
121132
122133-- ===========================================
123- -- 非数据管理表(如 users、data_sources )保持不变
134+ -- 非数据管理表(如 users、t_data_sources )保持不变
124135-- ===========================================
125136
126137-- 用户表(如果不存在)
@@ -146,19 +157,19 @@ CREATE TABLE IF NOT EXISTS users (
146157-- 插入初始数据
147158
148159-- 插入默认用户
149- INSERT IGNORE INTO users (username, email, password_hash, full_name, role, organization) VALUES
160+ INSERT IGNORE INTO users (username, email, password_hash, full_name, role, organization) VALUES
150161(' admin' , ' admin@dataengine.com' , ' $2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7q7U3.XUO' , ' 系统管理员' , ' ADMIN' , ' Data-Engine' ),
151162(' knowledge_user' , ' knowledge@dataengine.com' , ' $2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7q7U3.XUO' , ' 知识库用户' , ' USER' , ' 三甲医院' );
152163
153164-- 插入默认数据源
154- INSERT IGNORE INTO data_sources (name, description, type, host, port, database_name, username, enabled) VALUES
165+ INSERT IGNORE INTO t_data_sources (name, description, type, host, port, database_name, username, enabled) VALUES
155166(' 知识库MySQL' , ' 知识库MySQL数据库连接' , ' MYSQL' , ' localhost' , 3306 , ' knowledge_base' , ' knowledge_user' , TRUE),
156167(' 本地文件系统' , ' 本地文件系统数据源' , ' FILE_SYSTEM' , NULL , NULL , NULL , NULL , TRUE),
157168(' MinIO存储' , ' MinIO对象存储服务' , ' MINIO' , ' localhost' , 9000 , NULL , ' admin' , TRUE),
158169(' 医学影像PACS' , ' PACS医学影像存储系统' , ' PACS' , ' pacs.hospital.com' , 104 , NULL , ' pacs_user' , TRUE);
159170
160171-- 插入默认标签
161- INSERT IGNORE INTO t_dm_tags (id, name, description, category, color) VALUES
172+ INSERT IGNORE INTO t_dm_tags (id, name, description, category, color) VALUES
162173(' 0f3a0c2e-7b1d-4b8f-9e7a-1a2b3c4d5e6f' , ' WSI' , ' 全切片图像' , ' 医学影像' , ' #FF6B6B' ),
163174(' 1a2b3c4d-5e6f-7a8b-9c0d-1234567890ab' , ' 病理' , ' 病理学相关' , ' 医学' , ' #4ECDC4' ),
164175(' 2b3c4d5e-6f7a-8b9c-0d1e-234567890abc' , ' 肺癌' , ' 肺癌相关数据' , ' 疾病' , ' #45B7D1' ),
@@ -171,7 +182,7 @@ INSERT IGNORE INTO t_dm_tags (id, name, description, category, color) VALUES
171182(' 9c0d1e2f-3a4b-5c6d-7e8f-90abcdef1234' , ' 已验证' , ' 已验证数据' , ' 状态' , ' #85C1E9' );
172183
173184-- 插入示例数据集
174- INSERT IGNORE INTO t_dm_datasets (id, name, description, dataset_type, category, data_source_id, format, file_count, record_count, completion_rate, quality_score, status, is_public, is_featured) VALUES
185+ INSERT IGNORE INTO t_dm_datasets (id, name, description, dataset_type, category, data_source_id, format, file_count, record_count, completion_rate, quality_score, status, is_public, is_featured) VALUES
175186(' 11111111-1111-1111-1111-111111111111' , ' 肺癌WSI病理图像数据集' , ' 来自三甲医院的肺癌全切片病理图像,包含详细的病理标注信息' , ' IMAGE' , ' 医学影像' , 1 , ' WSI' , 1247 , 1205 , 94 .20 , 96 .80 , ' ACTIVE' , TRUE, TRUE),
176187(' 22222222-2222-2222-2222-222222222222' , ' 肺癌WSI诊断数据集A' , ' 基于肺癌WSI数据集生成的诊断数据集' , ' IMAGE' , ' 医学影像' , 1 , ' WSI' , 850 , 0 , 0 .00 , 0 .00 , ' DRAFT' , FALSE, FALSE),
177188(' 33333333-3333-3333-3333-333333333333' , ' 肺癌WSI诊断数据集B' , ' 基于肺癌WSI数据集生成的诊断数据集' , ' IMAGE' , ' 医学影像' , 1 , ' WSI' , 650 , 0 , 0 .00 , 0 .00 , ' DRAFT' , FALSE, FALSE),
@@ -180,7 +191,7 @@ INSERT IGNORE INTO t_dm_datasets (id, name, description, dataset_type, category,
180191(' 66666666-6666-6666-6666-666666666666' , ' GSM8K数学推理数据集' , ' 包含小学数学应用题的推理数据集,并开展数学推理能力训练' , ' TEXT' , ' 数学' , 1 , ' JSON' , 8500 , 8500 , 96 .00 , 96 .00 , ' ACTIVE' , FALSE, FALSE);
181192
182193-- 插入数据集标签关联
183- INSERT IGNORE INTO t_dm_dataset_tags (dataset_id, tag_id) VALUES
194+ INSERT IGNORE INTO t_dm_dataset_tags (dataset_id, tag_id) VALUES
184195(' 11111111-1111-1111-1111-111111111111' , ' 0f3a0c2e-7b1d-4b8f-9e7a-1a2b3c4d5e6f' ), (' 11111111-1111-1111-1111-111111111111' , ' 1a2b3c4d-5e6f-7a8b-9c0d-1234567890ab' ), (' 11111111-1111-1111-1111-111111111111' , ' 2b3c4d5e-6f7a-8b9c-0d1e-234567890abc' ), (' 11111111-1111-1111-1111-111111111111' , ' 4d5e6f7a-8b9c-0d1e-2f3a-4567890abcde' ), (' 11111111-1111-1111-1111-111111111111' , ' 8b9c0d1e-2f3a-4b5c-6d7e-890abcdef123' ), (' 11111111-1111-1111-1111-111111111111' , ' 9c0d1e2f-3a4b-5c6d-7e8f-90abcdef1234' ),
185196(' 22222222-2222-2222-2222-222222222222' , ' 0f3a0c2e-7b1d-4b8f-9e7a-1a2b3c4d5e6f' ), (' 22222222-2222-2222-2222-222222222222' , ' 1a2b3c4d-5e6f-7a8b-9c0d-1234567890ab' ), (' 22222222-2222-2222-2222-222222222222' , ' 2b3c4d5e-6f7a-8b9c-0d1e-234567890abc' ), (' 22222222-2222-2222-2222-222222222222' , ' 4d5e6f7a-8b9c-0d1e-2f3a-4567890abcde' ),
186197(' 33333333-3333-3333-3333-333333333333' , ' 0f3a0c2e-7b1d-4b8f-9e7a-1a2b3c4d5e6f' ), (' 33333333-3333-3333-3333-333333333333' , ' 1a2b3c4d-5e6f-7a8b-9c0d-1234567890ab' ), (' 33333333-3333-3333-3333-333333333333' , ' 2b3c4d5e-6f7a-8b9c-0d1e-234567890abc' ), (' 33333333-3333-3333-3333-333333333333' , ' 4d5e6f7a-8b9c-0d1e-2f3a-4567890abcde' ),
@@ -193,7 +204,7 @@ SET @F1 = 'aaaabbbb-0001-0001-0001-aaaabbbb0001';
193204SET @F2 = ' aaaabbbb-0002-0002-0002-aaaabbbb0002' ;
194205SET @F3 = ' aaaabbbb-0003-0003-0003-aaaabbbb0003' ;
195206SET @F4 = ' aaaabbbb-0004-0004-0004-aaaabbbb0004' ;
196- INSERT IGNORE INTO t_dm_dataset_files (id, dataset_id, file_name, file_path, file_type, file_format, file_size, status) VALUES
207+ INSERT IGNORE INTO t_dm_dataset_files (id, dataset_id, file_name, file_path, file_type, file_format, file_size, status) VALUES
197208(@F1, ' 11111111-1111-1111-1111-111111111111' , ' lung_cancer_001.jpg' , ' /datasets/wsi/lung_cancer_001.jpg' , ' IMAGE' , ' JPG' , 2516582 , ' ACTIVE' ),
198209(@F2, ' 11111111-1111-1111-1111-111111111111' , ' lung_cancer_002.jpg' , ' /datasets/wsi/lung_cancer_002.jpg' , ' IMAGE' , ' JPG' , 1887437 , ' ACTIVE' ),
199210(@F3, ' 11111111-1111-1111-1111-111111111111' , ' pathology_report_001.txt' , ' /datasets/wsi/pathology_report_001.txt' , ' TEXT' , ' TXT' , 15360 , ' ACTIVE' ),
@@ -204,7 +215,7 @@ SET @S1 = 'bbbbcccc-1001-1001-1001-bbbbcccc1001';
204215SET @S2 = ' bbbbcccc-1002-1002-1002-bbbbcccc1002' ;
205216SET @S3 = ' bbbbcccc-1003-1003-1003-bbbbcccc1003' ;
206217SET @S4 = ' bbbbcccc-1004-1004-1004-bbbbcccc1004' ;
207- INSERT IGNORE INTO t_dm_dataset_statistics (id, dataset_id, stat_date, total_files, total_size, processed_files, error_files, download_count, view_count) VALUES
218+ INSERT IGNORE INTO t_dm_dataset_statistics (id, dataset_id, stat_date, total_files, total_size, processed_files, error_files, download_count, view_count) VALUES
208219(@S1, ' 11111111-1111-1111-1111-111111111111' , CURDATE(), 1247 , 1342177280 , 1205 , 15 , 0 , 0 ),
209220(@S2, ' 44444444-4444-4444-4444-444444444444' , CURDATE(), 50000 , 943718400 , 50000 , 0 , 0 , 0 ),
210221(@S3, ' 55555555-5555-5555-5555-555555555555' , CURDATE(), 100000 , 2516582400 , 95000 , 0 , 0 , 0 ),
@@ -214,7 +225,7 @@ COMMIT;
214225
215226-- 创建视图:数据集详情视图(引用新表)
216227CREATE OR REPLACE VIEW v_dm_dataset_details AS
217- SELECT
228+ SELECT
218229 d .id ,
219230 d .name ,
220231 d .description ,
@@ -238,15 +249,15 @@ SELECT
238249 COALESCE(stats .total_size , 0 ) as total_size_bytes,
239250 GROUP_CONCAT(t .name ORDER BY t .name SEPARATOR ' , ' ) as tag_names
240251FROM t_dm_datasets d
241- LEFT JOIN data_sources ds ON d .data_source_id = ds .id
252+ LEFT JOIN t_data_sources ds ON d .data_source_id = ds .id
242253LEFT JOIN t_dm_dataset_statistics stats ON d .id = stats .dataset_id AND stats .stat_date = CURDATE()
243254LEFT JOIN t_dm_dataset_tags dt ON d .id = dt .dataset_id
244255LEFT JOIN t_dm_tags t ON dt .tag_id = t .id
245256GROUP BY d .id , ds .name , ds .type , stats .total_size ;
246257
247258-- 创建视图:数据集统计摘要(引用新表)
248259CREATE OR REPLACE VIEW v_dm_dataset_summary AS
249- SELECT
260+ SELECT
250261 COUNT (* ) as total_datasets,
251262 SUM (CASE WHEN status = ' ACTIVE' THEN 1 ELSE 0 END) as active_datasets,
252263 SUM (CASE WHEN is_public = TRUE THEN 1 ELSE 0 END) as public_datasets,
0 commit comments