Files
nxxmdata/government-backend/sql/schema.sql

66 lines
2.3 KiB
MySQL
Raw Normal View History

2025-09-17 18:04:28 +08:00
-- 1. 创建监管实体表
CREATE TABLE IF NOT EXISTS supervision_entities (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
type ENUM('farm', 'business', 'facility') NOT NULL,
address TEXT,
contact_person VARCHAR(50),
contact_phone VARCHAR(20),
status ENUM('active', 'inactive', 'suspended') DEFAULT 'active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_type (type),
INDEX idx_status (status)
);
-- 2. 创建检查记录表
CREATE TABLE IF NOT EXISTS inspections (
id INT AUTO_INCREMENT PRIMARY KEY,
entity_id INT NOT NULL,
inspector_id INT NOT NULL,
date DATE NOT NULL,
result ENUM('passed', 'failed', 'pending') DEFAULT 'pending',
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (entity_id) REFERENCES supervision_entities(id),
INDEX idx_entity (entity_id),
INDEX idx_date (date)
);
-- 3. 创建违规记录表
CREATE TABLE IF NOT EXISTS violations (
id INT AUTO_INCREMENT PRIMARY KEY,
entity_id INT NOT NULL,
inspection_id INT,
type VARCHAR(50) NOT NULL,
description TEXT,
status ENUM('reported', 'processed', 'resolved') DEFAULT 'reported',
penalty DECIMAL(10,2),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (entity_id) REFERENCES supervision_entities(id),
FOREIGN KEY (inspection_id) REFERENCES inspections(id),
INDEX idx_status (status)
);
-- 4. 创建审批流程表
CREATE TABLE IF NOT EXISTS approval_workflows (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
description TEXT,
steps JSON NOT NULL,
created_by INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 5. 创建用户表
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role ENUM('admin', 'manager', 'inspector', 'clerk') NOT NULL,
status ENUM('active', 'inactive') DEFAULT 'active',
last_login TIMESTAMP NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);