Files
2026-07-10 18:55:55 +08:00

145 lines
7.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.
-- 自动生成:incid_db 建库建表脚本
CREATE DATABASE IF NOT EXISTS incid_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE incid_db;
CREATE TABLE accid_list (
id INTEGER NOT NULL COMMENT '主键ID,自增' AUTO_INCREMENT,
ticket_id VARCHAR(50) NOT NULL COMMENT '工单ID',
model VARCHAR(100) COMMENT '型号',
vin VARCHAR(50) NOT NULL COMMENT '车辆识别码(VIN)',
creator VARCHAR(50) NOT NULL COMMENT '创建人(用户名,如ZHANMEN',
create_time DATETIME NOT NULL COMMENT '工单新建时间',
occur_datetime DATETIME NOT NULL COMMENT '问题发生时间',
case_description TEXT NOT NULL COMMENT 'Case描述',
fo_solution TEXT NOT NULL COMMENT 'Fo解答',
category VARCHAR(100) NOT NULL COMMENT '分类',
keywords VARCHAR(200) NOT NULL COMMENT '关键词(多个用逗号分隔)',
handle_status VARCHAR(20) COMMENT '处理状态:已完成/未完成',
create_at DATETIME COMMENT '记录插入数据库时间',
update_at DATETIME COMMENT '记录最后更新时间',
bmbs_name VARCHAR(50) COMMENT 'BMBS联系人',
accident_level ENUM('P1','P2','P3') COMMENT '事故评级',
rdca_reporter VARCHAR(50) COMMENT 'RDCA报告人',
carline VARCHAR(100) COMMENT '车系(关联字典表dict_code=carline',
software_version VARCHAR(50) COMMENT '软件版本',
labels VARCHAR(100) COMMENT '事故类型标签(关联字典表dict_code=labels',
attachment_url VARCHAR(255) COMMENT '附件地址(多个用逗号分隔)',
assignee_name VARCHAR(50) COMMENT '经办人(关联字典表/用户表)',
affects_versions VARCHAR(100) COMMENT '受影响的版本(关联字典表dict_code=affects_versions',
components VARCHAR(100) COMMENT '零部件/组件(关联字典表dict_code=components',
fix_versions VARCHAR(100) COMMENT '修复方案对应的版本(关联字典表dict_code=fix_versions',
subtasks VARCHAR(200) NOT NULL COMMENT '子任务(多个用逗号分隔)',
linked_work_items VARCHAR(200) NOT NULL COMMENT '关联的工作项(格式:类型:ID,类型:ID)',
descriptions VARCHAR(255) NOT NULL COMMENT '补充描述(区别于case_description',
mviz_link VARCHAR(255) NOT NULL COMMENT 'mviz的链接',
system_function VARCHAR(255) NOT NULL COMMENT 'system_function字段',
image_ids VARCHAR(255) NOT NULL COMMENT '关联图片ID串,逗号分隔(如:1,2,3)',
PRIMARY KEY (id)
)CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC ENGINE=InnoDB COLLATE utf8mb4_unicode_ci;
CREATE INDEX idx_carline ON accid_list (carline);
CREATE INDEX idx_labels ON accid_list (labels);
CREATE INDEX idx_components ON accid_list (components);
CREATE INDEX idx_ticket_id ON accid_list (ticket_id);
CREATE INDEX idx_affects_versions ON accid_list (affects_versions);
CREATE INDEX idx_accident_level ON accid_list (accident_level);
CREATE INDEX idx_create_time ON accid_list (create_time);
CREATE INDEX idx_fix_versions ON accid_list (fix_versions);
CREATE INDEX idx_creator ON accid_list (creator);
CREATE INDEX idx_assignee_name ON accid_list (assignee_name);
CREATE TABLE dict_type (
id INTEGER NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
dict_code VARCHAR(50) NOT NULL COMMENT '字典编码(对应accid_list的字段名,如carline、labels',
dict_name VARCHAR(50) NOT NULL COMMENT '字典名称(字段中文名称,如车系、事故类型)',
remark VARCHAR(200) COMMENT '备注(如“事故工单-车系下拉选项”)',
status INTEGER NOT NULL COMMENT '状态:1-启用,0-禁用',
create_time DATETIME COMMENT '创建时间',
update_time DATETIME COMMENT '更新时间',
PRIMARY KEY (id),
CONSTRAINT uk_dict_code UNIQUE (dict_code)
)CHARSET=utf8mb4 ENGINE=InnoDB COMMENT='字典类型表(管理需要下拉的字段)' ROW_FORMAT=Dynamic COLLATE utf8mb4_unicode_ci;
CREATE TABLE file_uploads (
id INTEGER NOT NULL COMMENT '主键(自增数值ID' AUTO_INCREMENT,
file_name VARCHAR(255) NOT NULL COMMENT '原始文件名(如:事故图片1.jpg)',
file_alias VARCHAR(255) NOT NULL COMMENT '存储别名(避免重名,如:20260210_153950_89782.jpg',
file_path VARCHAR(512) NOT NULL COMMENT '存储路径/访问URL(本地:/uploads/202602/xxx.jpgOSShttps://xxx.oss-cn-beijing.aliyuncs.com/xxx.jpg',
file_size INTEGER NOT NULL COMMENT '文件大小(字节)',
file_type VARCHAR(50) NOT NULL COMMENT '文件MIME类型(如:image/jpeg、image/png',
business_type VARCHAR(50) COMMENT '关联业务类型(如:case=案例、user=用户头像)',
business_id INTEGER COMMENT '关联业务主键(案例ID/用户ID等,初始为NULL',
create_time DATETIME NOT NULL COMMENT '上传时间',
create_by VARCHAR(50) COMMENT '上传人(用户ID/用户名)',
status INTEGER NOT NULL COMMENT '状态:1=有效,0=逻辑删除',
PRIMARY KEY (id)
)CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC ENGINE=InnoDB COLLATE utf8mb4_unicode_ci;
CREATE INDEX idx_business_type_id ON file_uploads (business_type, business_id);
CREATE INDEX idx_create_time ON file_uploads (create_time);
CREATE INDEX idx_status ON file_uploads (status);
CREATE TABLE users (
id INTEGER NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
status INTEGER COMMENT '用户状态:1-正常,0-禁用',
created_at DATETIME COMMENT '创建时间',
updated_at DATETIME COMMENT '更新时间',
email VARCHAR(255) COMMENT '邮箱',
avatar VARCHAR(255) COMMENT '头像(通常存储图片URL',
region VARCHAR(255) COMMENT '国家地区',
phone VARCHAR(255) COMMENT '电话',
brief VARCHAR(255) COMMENT '个人简介',
third_party_account VARCHAR(255) COMMENT '第三方账号(如微信、QQ等)',
position VARCHAR(255) COMMENT '职务',
department VARCHAR(255) COMMENT '部门',
label VARCHAR(255) COMMENT '个人标签(多个标签可逗号分隔)',
created_by INTEGER,
updated_by INTEGER,
PRIMARY KEY (id),
UNIQUE (username),
FOREIGN KEY(created_by) REFERENCES users (id),
FOREIGN KEY(updated_by) REFERENCES users (id)
);
CREATE TABLE dict_item (
id INTEGER NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
dict_id INTEGER NOT NULL COMMENT '关联字典类型表的ID',
item_value VARCHAR(100) NOT NULL COMMENT '选项值(存储到accid_list的实际值,如“大众帕萨特”“P1”)',
item_label VARCHAR(100) NOT NULL COMMENT '选项标签(前端显示的文本,如“大众帕萨特(车系)”)',
sort INTEGER COMMENT '排序号(前端下拉框显示顺序,数字越小越靠前)',
status INTEGER NOT NULL COMMENT '状态:1-启用,0-禁用(禁用后前端不显示)',
remark VARCHAR(200) COMMENT '备注(如“2025款帕萨特专属”)',
create_time DATETIME COMMENT '创建时间',
update_time DATETIME COMMENT '更新时间',
PRIMARY KEY (id),
FOREIGN KEY(dict_id) REFERENCES dict_type (id)
)CHARSET=utf8mb4 ENGINE=InnoDB COMMENT='字典项表(管理每个字段的具体下拉选项)' ROW_FORMAT=Dynamic COLLATE utf8mb4_unicode_ci;
CREATE INDEX idx_item_value ON dict_item (item_value);
CREATE INDEX idx_dict_id ON dict_item (dict_id);
CREATE TABLE roles (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL COMMENT '角色名称',
description VARCHAR(255) COMMENT '角色描述',
status INTEGER COMMENT '状态:1-启用,0-禁用',
created_at DATETIME,
updated_at DATETIME,
created_by INTEGER,
updated_by INTEGER,
PRIMARY KEY (id),
UNIQUE (name),
FOREIGN KEY(created_by) REFERENCES users (id),
FOREIGN KEY(updated_by) REFERENCES users (id)
);
CREATE TABLE user_roles (
user_id INTEGER NOT NULL,
role_id INTEGER NOT NULL,
created_at DATETIME,
created_by INTEGER,
PRIMARY KEY (user_id, role_id),
FOREIGN KEY(user_id) REFERENCES users (id),
FOREIGN KEY(role_id) REFERENCES roles (id),
FOREIGN KEY(created_by) REFERENCES users (id)
);