設備管理系統涵蓋設備台帳、缺陷追蹤、事故記錄、維修作業、巡檢管理、備品備件、工具管理等業務域。本文提供完整邏輯模型設計與 MySQL 建表腳本,採用 InnoDB 引擎、utf8 字元集、自增主鍵、外鍵關聯規範。
CREATE DATABASE devmng DEFAULT CHARACTER SET utf8;
USE devmng;
-- 設備類別字典
CREATE TABLE devtype (
dtID INT NOT NULL AUTO_INCREMENT,
dtname VARCHAR(36) NOT NULL,
PRIMARY KEY (dtID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 部門字典
CREATE TABLE part (
ptID INT NOT NULL AUTO_INCREMENT,
partname VARCHAR(36) NOT NULL,
PRIMARY KEY (ptID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 設備狀態字典
CREATE TABLE devstatus (
dsID INT NOT NULL AUTO_INCREMENT,
dsname VARCHAR(12) NOT NULL,
PRIMARY KEY (dsID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO devstatus VALUES (1,'上線'),(2,'封存'),(3,'閒置'),(4,'報廢'),(5,'待修'),(6,'備用');
-- 設備主檔
CREATE TABLE Equipment (
equipmentID INT NOT NULL AUTO_INCREMENT,
devtypeID INT,
devname VARCHAR(50),
modnum VARCHAR(50),
touyundate DATE,
gourudate DATE,
zhidaodw VARCHAR(100),
quantity INT,
unit VARCHAR(8),
useDepartment VARCHAR(50),
storePlace VARCHAR(80),
picture VARCHAR(256),
technicalData VARCHAR(256),
remark VARCHAR(256),
statusID INT,
PRIMARY KEY (equipmentID),
FOREIGN KEY (devtypeID) REFERENCES devtype(dtID),
FOREIGN KEY (statusID) REFERENCES devstatus(dsID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 缺陷表
CREATE TABLE devbug (
bugID INT NOT NULL AUTO_INCREMENT,
devid INT NOT NULL,
bugcontent VARCHAR(256),
chuliqk VARCHAR(100),
chuliren VARCHAR(80),
PRIMARY KEY (bugID),
FOREIGN KEY (devid) REFERENCES Equipment(equipmentID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 事故表
CREATE TABLE devfault (
faultID INT NOT NULL AUTO_INCREMENT,
devid INT NOT NULL,
faultcontent VARCHAR(256),
chuliqk VARCHAR(100),
chuliren VARCHAR(80),
PRIMARY KEY (faultID),
FOREIGN KEY (devid) REFERENCES Equipment(equipmentID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 維修類別
CREATE TABLE repairtype (
rtID INT NOT NULL AUTO_INCREMENT,
rtname VARCHAR(24),
rtcontent VARCHAR(256),
cycle INT,
PRIMARY KEY (rtID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 維修人員
CREATE TABLE repairpl (
rpID INT NOT NULL AUTO_INCREMENT,
ptid INT,
rpname VARCHAR(24),
zhiwu VARCHAR(36),
zhich VARCHAR(36),
PRIMARY KEY (rpID),
FOREIGN KEY (ptid) REFERENCES part(ptID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 備品備件
CREATE TABLE bpbj (
bbID INT NOT NULL AUTO_INCREMENT,
bbname VARCHAR(36),
num INT,
unit VARCHAR(8),
purpose VARCHAR(256),
xianyounum INT,
minnum INT,
PRIMARY KEY (bbID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 工具
CREATE TABLE tools (
tID INT NOT NULL AUTO_INCREMENT,
tname VARCHAR(36),
num INT,
unit VARCHAR(8),
purpose VARCHAR(256),
PRIMARY KEY (tID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 維修記錄
CREATE TABLE rprecords (
rrID INT NOT NULL AUTO_INCREMENT,
rtID INT,
equipmentID INT,
rpren VARCHAR(100),
rpcontent VARCHAR(300),
rpdate DATE,
wuliao VARCHAR(150),
PRIMARY KEY (rrID),
FOREIGN KEY (rtID) REFERENCES repairtype(rtID),
FOREIGN KEY (equipmentID) REFERENCES Equipment(equipmentID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 巡檢記錄
CREATE TABLE checkrecords (
crID INT NOT NULL AUTO_INCREMENT,
equipmentID INT,
checkdate DATE,
checkren VARCHAR(80),
checkcontent VARCHAR(100),
checktype VARCHAR(36),
PRIMARY KEY (crID),
FOREIGN KEY (equipmentID) REFERENCES Equipment(equipmentID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
BIGINT/INT AUTO_INCREMENT 代理鍵,業務鍵不做主鍵。FOREIGN KEY fk_name (col) REFERENCES ...,便於管理。is_deleted TINYINT DEFAULT 0、deleted_at DATETIME。created_at, updated_at, created_by, updated_by。devid, rpdate, checkdate)建立二級索引。此設計採用第三範式 (3NF) 消除冗余,並針對查詢場景適度保留冗余(如設備名稱冗余於記錄表避免 Join)。實際上線前請依據業務量級調整分區策略、讀寫分離架構、緩存層設計。