Files
2026-05-26 20:47:59 +08:00

142 lines
8.8 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ============================================================
-- 资产管理系统 — 数据库初始化脚本
-- 数据库asset_db | 字符集utf8mb4 | 引擎InnoDB
-- ============================================================
-- 创建数据库
CREATE DATABASE IF NOT EXISTS asset_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE asset_db;
-- ============================================================
-- 1. 用户表t_user
-- ============================================================
DROP TABLE IF EXISTS t_borrow;
DROP TABLE IF EXISTS t_disposal;
DROP TABLE IF EXISTS t_asset;
DROP TABLE IF EXISTS t_category;
DROP TABLE IF EXISTS t_user;
CREATE TABLE t_user (
id INT NOT NULL AUTO_INCREMENT COMMENT '主键',
username VARCHAR(50) NOT NULL COMMENT '用户名',
password VARCHAR(100) NOT NULL COMMENT '密码MD5加密',
real_name VARCHAR(50) NOT NULL COMMENT '真实姓名',
role VARCHAR(20) NOT NULL DEFAULT 'user' COMMENT '角色admin/user',
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态1启用/0禁用',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (id),
UNIQUE KEY uk_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- ============================================================
-- 2. 资产分类表t_category
-- ============================================================
CREATE TABLE t_category (
id INT NOT NULL AUTO_INCREMENT COMMENT '主键',
category_code VARCHAR(20) NOT NULL COMMENT '分类编号',
category_name VARCHAR(50) NOT NULL COMMENT '分类名称',
description VARCHAR(200) DEFAULT NULL COMMENT '分类描述',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (id),
UNIQUE KEY uk_category_code (category_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产分类表';
-- ============================================================
-- 3. 资产表t_asset
-- ============================================================
CREATE TABLE t_asset (
id INT NOT NULL AUTO_INCREMENT COMMENT '主键',
asset_code VARCHAR(30) NOT NULL COMMENT '资产编号',
asset_name VARCHAR(100) NOT NULL COMMENT '资产名称',
category_id INT NOT NULL COMMENT '分类ID',
status VARCHAR(20) NOT NULL DEFAULT 'available' COMMENT '状态available/borrowed/disposed',
value DECIMAL(12,2) NOT NULL COMMENT '资产价值(元)',
purchase_date DATE NOT NULL COMMENT '购入日期',
location VARCHAR(100) DEFAULT NULL COMMENT '存放位置',
description VARCHAR(500) DEFAULT NULL COMMENT '资产描述',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (id),
UNIQUE KEY uk_asset_code (asset_code),
INDEX idx_category_id (category_id),
INDEX idx_status (status),
CONSTRAINT fk_asset_category FOREIGN KEY (category_id) REFERENCES t_category (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资产表';
-- ============================================================
-- 4. 借用表t_borrow
-- ============================================================
CREATE TABLE t_borrow (
id INT NOT NULL AUTO_INCREMENT COMMENT '主键',
asset_id INT NOT NULL COMMENT '资产ID',
user_id INT NOT NULL COMMENT '借用人ID',
borrow_date DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '借用时间',
expected_return_date DATE NOT NULL COMMENT '预计归还日期',
actual_return_date DATETIME DEFAULT NULL COMMENT '实际归还日期',
reason VARCHAR(200) NOT NULL COMMENT '借用原因',
status VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '状态pending/approved/rejected/returned/overdue',
approver_id INT DEFAULT NULL COMMENT '审批人ID',
approve_time DATETIME DEFAULT NULL COMMENT '审批时间',
approve_remark VARCHAR(200) DEFAULT NULL COMMENT '审批备注',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (id),
INDEX idx_borrow_asset (asset_id),
INDEX idx_borrow_user (user_id),
INDEX idx_borrow_status (status),
CONSTRAINT fk_borrow_asset FOREIGN KEY (asset_id) REFERENCES t_asset (id),
CONSTRAINT fk_borrow_user FOREIGN KEY (user_id) REFERENCES t_user (id),
CONSTRAINT fk_borrow_approver FOREIGN KEY (approver_id) REFERENCES t_user (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='借用表';
-- ============================================================
-- 5. 报废表t_disposal
-- ============================================================
CREATE TABLE t_disposal (
id INT NOT NULL AUTO_INCREMENT COMMENT '主键',
asset_id INT NOT NULL COMMENT '资产ID',
user_id INT NOT NULL COMMENT '申请人ID',
reason VARCHAR(200) NOT NULL COMMENT '报废原因',
status VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '状态pending/approved/rejected',
approver_id INT DEFAULT NULL COMMENT '审批人ID',
approve_time DATETIME DEFAULT NULL COMMENT '审批时间',
approve_remark VARCHAR(200) DEFAULT NULL COMMENT '审批备注',
disposal_date DATETIME DEFAULT NULL COMMENT '报废执行日期',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (id),
INDEX idx_disposal_asset (asset_id),
INDEX idx_disposal_user (user_id),
INDEX idx_disposal_status (status),
CONSTRAINT fk_disposal_asset FOREIGN KEY (asset_id) REFERENCES t_asset (id),
CONSTRAINT fk_disposal_user FOREIGN KEY (user_id) REFERENCES t_user (id),
CONSTRAINT fk_disposal_approver FOREIGN KEY (approver_id) REFERENCES t_user (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报废表';
-- ============================================================
-- 初始数据
-- ============================================================
-- 管理员用户密码admin123MD5加密后0192023a7bbd73250516f069df18b500
INSERT INTO t_user (username, password, real_name, role, status) VALUES
('admin', '0192023a7bbd73250516f069df18b500', '管理员', 'admin', 1);
-- 4个初始分类
INSERT INTO t_category (category_code, category_name, description) VALUES
('CAT001', '办公设备', '打印机、复印机、扫描仪等办公设备'),
('CAT002', '电子设备', '电脑、显示器、投影仪等电子设备'),
('CAT003', '家具', '办公桌、椅子、文件柜等家具'),
('CAT004', '交通工具', '汽车、电动车等交通工具');
-- 6条示例资产数据分布在不同分类下状态各不同
INSERT INTO t_asset (asset_code, asset_name, category_id, status, value, purchase_date, location, description) VALUES
('AST20260001', '惠普激光打印机', 1, 'available', 2999.00, '2025-03-15', 'A栋3楼打印室', '惠普M1136激光一体机'),
('AST20260002', '联想笔记本电脑', 2, 'borrowed', 5999.00, '2025-06-20', 'B栋2楼研发部', 'ThinkPad E14 i7处理器'),
('AST20260003', '实木办公桌', 3, 'available', 1500.00, '2024-11-10', 'A栋5楼经理室', '1.4米实木办公桌'),
('AST20260004', '爱普生投影仪', 2, 'disposed', 3500.00, '2023-08-05', 'C栋1楼会议室', '已报废处理'),
('AST20260005', '比亚迪电动轿车', 4, 'available', 159800.00, '2025-01-18', '地下车库B2', '秦PLUS DM-i 2025款'),
('AST20260006', '华为平板电脑', 2, 'borrowed', 3299.00, '2025-09-01', 'B栋3楼设计部', 'MatePad Pro 12.6英寸');