209 lines
9.0 KiB
SQL
209 lines
9.0 KiB
SQL
-- 如果数据库已存在则删除
|
|
DROP DATABASE IF EXISTS equipment_cost_db;
|
|
|
|
-- 创建数据库
|
|
CREATE DATABASE equipment_cost_db
|
|
DEFAULT CHARACTER SET utf8mb4
|
|
COLLATE utf8mb4_unicode_ci;
|
|
|
|
-- 使用数据库
|
|
USE equipment_cost_db;
|
|
|
|
-- 装备基本信息表
|
|
CREATE TABLE equipments (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(100), -- 名称
|
|
type VARCHAR(50), -- 类型(火箭炮/巡飞弹)
|
|
manufacturer VARCHAR(100), -- 制造商
|
|
manufacturer_id INT, -- 制造商ID
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 通用参数表
|
|
CREATE TABLE common_params (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
equipment_id INT,
|
|
length_m FLOAT, -- 总长(m)
|
|
width_m FLOAT, -- 宽度(m)
|
|
height_m FLOAT, -- 高度(m)
|
|
weight_kg FLOAT, -- 重量(kg)
|
|
FOREIGN KEY (equipment_id) REFERENCES equipments(id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 火箭炮特有参数表
|
|
CREATE TABLE rocket_artillery_params (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
equipment_id INT,
|
|
firing_angle_horizontal FLOAT, -- 方向射界(度)
|
|
firing_angle_vertical FLOAT, -- 高低射界(度)
|
|
rocket_length_m FLOAT, -- 火箭弹长度(m)
|
|
rocket_diameter_mm FLOAT, -- 弹体直径(mm)
|
|
rocket_weight_kg FLOAT, -- 火箭弹重量(kg)
|
|
rate_of_fire FLOAT, -- 射速(发/分钟)
|
|
combat_weight_kg FLOAT, -- 战斗重量(kg)
|
|
speed_kmh FLOAT, -- 速度(km/h)
|
|
min_range_km FLOAT, -- 最小射程(km)
|
|
max_range_km FLOAT, -- 最大射程(km)
|
|
mobility_type VARCHAR(50), -- 行走方式
|
|
structure_layout VARCHAR(100), -- 结构布局
|
|
engine_model VARCHAR(100), -- 发动机型号
|
|
engine_params TEXT, -- 发动机参数
|
|
power_hp FLOAT, -- 功率(hp)
|
|
travel_range_km FLOAT, -- 行程(km)
|
|
|
|
-- 新增特征工程字段
|
|
fire_density FLOAT, -- 火力密度(发射次数/分钟/平方米)
|
|
range_ratio FLOAT, -- 射程比(最大射程/最小射程)
|
|
mobility_score INT, -- 机动性评分(1-10)
|
|
combat_readiness_score INT, -- 战备状态评分(1-10)
|
|
rocket_power_ratio FLOAT, -- 火箭弹功重比
|
|
platform_efficiency FLOAT, -- 平台效率(射速/战斗重量)
|
|
deployment_score INT, -- 部署评分(1-10)
|
|
terrain_adaptability_score INT, -- 地形适应性评分(1-10)
|
|
|
|
FOREIGN KEY (equipment_id) REFERENCES equipments(id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 巡飞弹特有参数表
|
|
CREATE TABLE loitering_munition_params (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
equipment_id INT,
|
|
wingspan_m FLOAT, -- 翼展(m)
|
|
warhead_weight_kg FLOAT, -- 战斗部重量(kg)
|
|
max_speed_ms FLOAT, -- 最大速度(m/s)
|
|
cruise_speed_kmh FLOAT, -- 巡航速度(km/h)
|
|
endurance_min FLOAT, -- 续航时间(min)
|
|
max_range_km FLOAT, -- 最大航程(km)
|
|
max_payload_kg FLOAT, -- 最大载荷(kg)
|
|
ceiling_altitude_m FLOAT, -- 升限(m)
|
|
combat_radius_km FLOAT, -- 作战半径(km)
|
|
warhead_type VARCHAR(50), -- 战斗部类型
|
|
launch_mode VARCHAR(50), -- 发射方式
|
|
power_system VARCHAR(100), -- 动力装置
|
|
guidance_system VARCHAR(100), -- 制导体制
|
|
|
|
|
|
engine_power_kw FLOAT, -- 发动机功率(kw)
|
|
engine_thrust_n FLOAT, -- 发动机推力(N)
|
|
datalink_range_km FLOAT, -- 通信链路距离(km)
|
|
guidance_accuracy_m FLOAT, -- 制导精度(m)
|
|
min_altitude_m FLOAT, -- 最小作战高度(m)
|
|
max_altitude_m FLOAT, -- 最大作战高度(m)
|
|
|
|
-- 特征工程字段
|
|
length_width_ratio FLOAT, -- 长宽比
|
|
weight_range_ratio FLOAT, -- 重量/射程比
|
|
speed_weight_ratio FLOAT, -- 速度/重量比
|
|
guidance_system_score INT, -- 制导系统复杂度评分(1-10)
|
|
warhead_power_score INT, -- 战斗部威力评分(1-10)
|
|
|
|
-- 分类特征编码
|
|
warhead_type_code INT, -- 战斗部类型编码
|
|
launch_mode_code INT, -- 发射方式编码
|
|
power_system_code INT, -- 动力装置编码
|
|
guidance_system_code INT, -- 制导系统编码
|
|
|
|
FOREIGN KEY (equipment_id) REFERENCES equipments(id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 分类特征编码表
|
|
CREATE TABLE feature_encoding (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
feature_type VARCHAR(50), -- 特征类型(warhead_type/launch_mode/power_system/guidance_system)
|
|
feature_value VARCHAR(100), -- 特征值
|
|
code INT, -- 编码值
|
|
UNIQUE KEY unique_feature (feature_type, feature_value)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 成本数据表
|
|
CREATE TABLE cost_data (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
equipment_id INT,
|
|
actual_cost DECIMAL(15,2), -- 实际成本(元)
|
|
predicted_cost DECIMAL(15,2), -- 预测成本(元)
|
|
prediction_date TIMESTAMP, -- 预测日期
|
|
FOREIGN KEY (equipment_id) REFERENCES equipments(id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 特殊参数表
|
|
CREATE TABLE custom_params (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
equipment_id INT,
|
|
param_name VARCHAR(100), -- 参数名称
|
|
param_value VARCHAR(255), -- 参数值
|
|
param_unit VARCHAR(50), -- 参数单位
|
|
description TEXT, -- 参数说明
|
|
FOREIGN KEY (equipment_id) REFERENCES equipments(id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 添加索引
|
|
CREATE INDEX idx_equipment_type ON equipments(type);
|
|
CREATE INDEX idx_equipment_name ON equipments(name);
|
|
CREATE INDEX idx_cost_data_equipment ON cost_data(equipment_id);
|
|
|
|
-- 数据集表
|
|
CREATE TABLE datasets (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(100) NOT NULL, -- 数据集名称
|
|
description TEXT, -- 数据集描述
|
|
equipment_type VARCHAR(50) NOT NULL, -- 装备类型
|
|
purpose VARCHAR(50) NOT NULL, -- 用途(训练/验证)
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- 数据集-装备关联表
|
|
CREATE TABLE dataset_equipments (
|
|
dataset_id INT NOT NULL,
|
|
equipment_id INT NOT NULL,
|
|
PRIMARY KEY (dataset_id, equipment_id),
|
|
FOREIGN KEY (dataset_id) REFERENCES datasets(id),
|
|
FOREIGN KEY (equipment_id) REFERENCES equipments(id)
|
|
);
|
|
|
|
-- 训练模型表
|
|
CREATE TABLE trained_models (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
model_name VARCHAR(100) NOT NULL, -- 模型名称
|
|
model_type VARCHAR(50) NOT NULL, -- 模型类型
|
|
equipment_type VARCHAR(50) NOT NULL, -- 装备类型
|
|
model_path VARCHAR(255) NOT NULL, -- 模型文件路径
|
|
scaler_path VARCHAR(255) NOT NULL, -- 标准化器路径
|
|
r2_score FLOAT, -- R²分数
|
|
mae FLOAT, -- 平均绝对误差
|
|
rmse FLOAT, -- 均方根误差
|
|
feature_importance JSON, -- 特征重要性
|
|
training_data_size INT, -- 训练数据量
|
|
training_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 训练时间
|
|
is_active BOOLEAN DEFAULT FALSE, -- 是否为当前活模型
|
|
created_by VARCHAR(50) -- 创建者
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 添加索引
|
|
CREATE INDEX idx_model_equipment_type ON trained_models(equipment_type);
|
|
CREATE INDEX idx_model_active ON trained_models(is_active);
|
|
|
|
-- 生产商表
|
|
CREATE TABLE manufacturers (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
name VARCHAR(100) NOT NULL, -- 生产商名称
|
|
country VARCHAR(50) NOT NULL, -- 所属国家
|
|
tech_level INT NOT NULL, -- 技术水平评分(1-10)
|
|
scale_level INT NOT NULL, -- 规模评分(1-10)
|
|
supply_chain_level INT NOT NULL, -- 供应链成熟度评分(1-10)
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
UNIQUE KEY unique_name (name)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 添加生产商外键
|
|
ALTER TABLE equipments ADD FOREIGN KEY (manufacturer_id) REFERENCES manufacturers(id);
|
|
|
|
-- 添加索引
|
|
CREATE INDEX idx_manufacturer_country ON manufacturers(country);
|
|
CREATE INDEX idx_manufacturer_tech_level ON manufacturers(tech_level);
|
|
CREATE INDEX idx_manufacturer_scale_level ON manufacturers(scale_level);
|
|
CREATE INDEX idx_manufacturer_supply_chain_level ON manufacturers(supply_chain_level);
|
|
CREATE INDEX idx_equipment_manufacturer ON equipments(manufacturer_id);
|
|
|