/* Navicat Premium Dump SQL Source Server : JavaProjects Source Server Type : MySQL Source Server Version : 80040 (8.0.40) Source Host : localhost:3306 Source Schema : registration Target Server Type : MySQL Target Server Version : 80040 (8.0.40) File Encoding : 65001 Date: 15/05/2026 10:33:13 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for training_registration -- ---------------------------- DROP TABLE IF EXISTS `training_registration`; CREATE TABLE `training_registration` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键ID', `bm_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报名编号,格式:BMYYYYMMxxxx', `random_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '随机唯一编号(隐藏)', `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名(真实姓名)', `company` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '所在单位(学校/企业全称)', `department` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '所在部门(院系/部门名称)', `referrer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '推荐人', `referrer_company` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '推荐人单位', `title` enum('教授','副教授','讲师','工程师','其他') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '职务/职称', `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '手机号码', `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '电子邮箱', `id_card` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '身份证号', `period` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报名期次', `fee` decimal(10, 2) NOT NULL DEFAULT 2500.00 COMMENT '培训费用(元)', `remark` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '备注说明(饮食禁忌、特殊需求等)', `sms_code` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信验证码', `is_verified` tinyint(1) NULL DEFAULT 0 COMMENT '短信是否已验证:0-未验证,1-已验证', `verification_time` datetime NULL DEFAULT NULL COMMENT '验证时间', `status` enum('draft','submitted','reviewing','approved','rejected','paid','completed','cancelled') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'draft' COMMENT '状态:草稿/已提交/审核中/已通过/已拒绝/已支付/已完成/已取消', `submit_time` datetime NULL DEFAULT NULL COMMENT '提交时间', `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `create_ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建IP', `create_user_agent` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '创建用户代理', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `bm_id`(`bm_id` ASC) USING BTREE, UNIQUE INDEX `random_code`(`random_code` ASC) USING BTREE, INDEX `idx_bm_id`(`bm_id` ASC) USING BTREE, INDEX `idx_phone`(`phone` ASC) USING BTREE, INDEX `idx_email`(`email` ASC) USING BTREE, INDEX `idx_id_card`(`id_card` ASC) USING BTREE, INDEX `idx_status`(`status` ASC) USING BTREE, INDEX `idx_create_time`(`create_time` ASC) USING BTREE, INDEX `idx_period`(`period` ASC) USING BTREE, INDEX `idx_company`(`company`(20) ASC) USING BTREE, INDEX `idx_random_code`(`random_code` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '培训报名表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of training_registration -- ---------------------------- -- ---------------------------- -- Table structure for user -- ---------------------------- DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID', `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名(唯一)', `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱(唯一)', `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '手机号(唯一,可选)', `password_hash` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码哈希值', `password_salt` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码盐值', `real_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '真实姓名', `nickname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '昵称', `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像URL', `gender` enum('male','female','unknown') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'unknown' COMMENT '性别:男/女/未知', `birthday` date NULL DEFAULT NULL COMMENT '出生日期', `status` enum('active','inactive','locked','deleted') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'active' COMMENT '账号状态:激活/未激活/锁定/已删除', `email_verified` tinyint(1) NULL DEFAULT 0 COMMENT '邮箱是否已验证:0-未验证,1-已验证', `phone_verified` tinyint(1) NULL DEFAULT 0 COMMENT '手机号是否已验证:0-未验证,1-已验证', `last_login_ip` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '最后登录IP', `last_login_time` datetime NULL DEFAULT NULL COMMENT '最后登录时间', `login_count` int NULL DEFAULT 0 COMMENT '登录次数', `failed_login_attempts` int NULL DEFAULT 0 COMMENT '连续登录失败次数', `account_locked_until` datetime NULL DEFAULT NULL COMMENT '账号锁定至', `password_changed_at` datetime NULL DEFAULT NULL COMMENT '密码最后修改时间', `password_expires_at` datetime NULL DEFAULT NULL COMMENT '密码过期时间', `role` enum('user','admin','super_admin') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'user' COMMENT '用户角色', `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `deleted_at` datetime NULL DEFAULT NULL COMMENT '删除时间(软删除)', PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `username`(`username` ASC) USING BTREE, UNIQUE INDEX `email`(`email` ASC) USING BTREE, UNIQUE INDEX `phone`(`phone` ASC) USING BTREE, INDEX `idx_username`(`username` ASC) USING BTREE, INDEX `idx_email`(`email` ASC) USING BTREE, INDEX `idx_phone`(`phone` ASC) USING BTREE, INDEX `idx_status`(`status` ASC) USING BTREE, INDEX `idx_role`(`role` ASC) USING BTREE, INDEX `idx_created`(`created_at` ASC) USING BTREE, INDEX `idx_login_time`(`last_login_time` ASC) USING BTREE, INDEX `idx_status_created`(`status` ASC, `created_at` ASC) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户表' ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `user` VALUES (1, 'admin', '1', '1', 'a3c2b756aae43be93802ed8dda4f9c06', '1234', NULL, NULL, NULL, 'unknown', NULL, 'active', 0, 0, NULL, '2026-05-15 10:03:43', 7, 0, NULL, NULL, NULL, 'super_admin', '2026-04-30 15:08:28', '2026-04-30 15:26:32', NULL); SET FOREIGN_KEY_CHECKS = 1;