2025414日报
今日进行团队作业中数据库设计
完成了运维系统的十个表的初步设计
#用户表:users
CREATE TABLE users (
id VARCHAR(8) PRIMARY KEY NOT NULL, #工号 主键
username VARCHAR(50) NOT NULL, #姓名
phone VARCHAR(20) NOT NULL UNIQUE, #电话
email VARCHAR(100) NOT NULL UNIQUE, #邮箱
password VARCHAR(255) NOT NULL, #密码
role ENUM('engineer', 'admin', 'super_admin') NOT NULL #职位(工程师,管理人员,超级系统管理员)
);
#设备表:devices
CREATE TABLE devices (
device_id VARCHAR(9) PRIMARY KEY NOT NULL, #设备编号
device_type VARCHAR(50) NOT NULL, #设备类型
location VARCHAR(100) NOT NULL, #设备位置
status ENUM('正常', '故障', '维护中', '报废') DEFAULT '正常' #设备状态
);
#设备故障表:device_faults
CREATE TABLE device_faults (
fault_id INT PRIMARY KEY AUTO_INCREMENT, #主键
device_id INT NOT NULL, #设备编号,联系devices表
fault_desc TEXT NOT NULL, #故障描述
report_type ENUM('自主报修', '电话报修') NOT NULL, #报修类型
reported_id VARCHAR(8) NOT NULL, #保修人工号
reported_name VARCHAR(20) NOT NULL, #报修人姓名
reported_phone VARCHAR(11) NOT NULL, #留电话
status ENUM('待处理', '处理中', '已解决', '已关闭') DEFAULT '待处理' #报修后状态
);
#维修工单表:repair_orders
CREATE TABLE repair_orders (
orderID INT PRIMARY KEY AUTO_INCREMENT, #主键,工单编号
fault_id INT NOT NULL, #故障编号,关联设备故障表
engineer_id INT NOT NULL, #工程师id
repair_desc TEXT #维修描述
status VARCHAR(20) NOT NULL DEFAULT '待处理', #工单状态
safety_notice TEXT, #维修安全须知
photos JSON #维修后照片
);
#巡检计划表 inspection_plans
CREATE TABLE inspection_plans (
plan_id INT PRIMARY KEY AUTO_INCREMENT,
device_id VARCHAR(9) NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME,
frequency ENUM('日', '周', '月', '季度', '半年', '年') NOT NULL,
location VARCHAR(100)
);
#巡检工单表 inspection_orders
CREATE TABLE inspection_orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
plan_id INT NOT NULL,
engineer_id INT NOT NULL,
inspection_desc TEXT,
status ENUM('待处理', '处理中', '已完成', '已关闭') DEFAULT '待处理',
photos JSON -- 巡检照片
);
#保养计划表 maintenance_plans
CREATE TABLE maintenance_plans (
plan_id INT PRIMARY KEY AUTO_INCREMENT,
device_id INT NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME,
frequency ENUM('月', '季度', '半年', '年') NOT NULL,
checklist JSON -- 保养项点 ["检查电路", "润滑部件"]
);
#保养工单表 maintenance_orders
CREATE TABLE maintenance_orders (
work_order_id INT PRIMARY KEY AUTO_INCREMENT,
plan_id INT,
engineer_id INT NOT NULL,
maintenance_desc TEXT,
status ENUM('待处理', '处理中', '已完成', '已关闭') DEFAULT '待处理',
before_photos JSON,
after_photos JSON
);
#检测计划表 testing_plans
CREATE TABLE Testing_Plans (
plan_id INT PRIMARY KEY AUTO_INCREMENT,
device_id INT NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME,
frequency ENUM('月', '季度', '半年', '年') NOT NULL,
location VARCHAR(100) NOT NULL
);
#检测工单表 testing_orders
CREATE TABLE testing_orders (
work_order_id INT PRIMARY KEY AUTO_INCREMENT, # 工单ID,自增主键
plan_id INT, # 关联检测计划ID
engineer_id VARCHAR(8) NOT NULL, # 执行工程师工号
testing_desc TEXT, # 检测描述
status ENUM('待处理', '处理中', '已完成', '已关闭') DEFAULT '待处理', # 工单状态
photos JSON, # 检测照片
);
遇到的问题:1.用户表与工程师表数据冗余。
解决办法:1.将工程师表改进为用户表,实现共用。