首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 建立通用設備管理資訊系統資料庫:完整 ER 設計與建表腳本

     編輯:MySQL 資料庫相關知識

設備管理系統涵蓋設備台帳、缺陷追蹤、事故記錄、維修作業、巡檢管理、備品備件、工具管理等業務域。本文提供完整邏輯模型設計與 MySQL 建表腳本,採用 InnoDB 引擎、utf8 字元集、自增主鍵、外鍵關聯規範。

核心實體與關聯 (ER 概覽)

  • 設備主檔:基本屬性、類別、部門、狀態、地點
  • 缺陷/事故:歸屬設備、描述、處理情況、處理人員
  • 維修體系:維修類別(週期)、維修記錄(人員、物料、時間)
  • 巡檢記錄:設備、日期、人員、方式、情況
  • 組織架構:部門、維修人員(職務/職稱)
  • 物料管理:備品備件(庫存/最低量)、工具
  • 字典表:設備類別、設備狀態(上線/封存/閒置/報廢/待修/備用)

建庫與核心建表腳本

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)建立二級索引。

資料庫資源下載

完整 SQL 腳本下載 (含測試資料)

此設計採用第三範式 (3NF) 消除冗余,並針對查詢場景適度保留冗余(如設備名稱冗余於記錄表避免 Join)。實際上線前請依據業務量級調整分區策略、讀寫分離架構、緩存層設計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved