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.将工程师表改进为用户表,实现共用。

posted @ 2025-04-14 21:26  花落水无痕  阅读(32)  评论(0)    收藏  举报