144 lines
7.0 KiB
MySQL
144 lines
7.0 KiB
MySQL
|
|
-- ========================================
|
|||
|
|
-- 多多畅职平台 - 完整数据库初始化SQL脚本
|
|||
|
|
-- ========================================
|
|||
|
|
-- 使用说明:
|
|||
|
|
-- 1. 在Navicat中使用root或管理员账号连接MySQL
|
|||
|
|
-- 2. 打开此SQL文件,点击"运行"执行整个脚本
|
|||
|
|
-- 3. 执行完成后即可使用
|
|||
|
|
-- ========================================
|
|||
|
|
|
|||
|
|
-- 创建数据库
|
|||
|
|
CREATE DATABASE IF NOT EXISTS `ddcz_platform`
|
|||
|
|
DEFAULT CHARACTER SET utf8mb4
|
|||
|
|
COLLATE utf8mb4_unicode_ci;
|
|||
|
|
|
|||
|
|
-- 使用数据库
|
|||
|
|
USE `ddcz_platform`;
|
|||
|
|
|
|||
|
|
-- ========================================
|
|||
|
|
-- 表1: users(用户表)
|
|||
|
|
-- ========================================
|
|||
|
|
CREATE TABLE IF NOT EXISTS `users` (
|
|||
|
|
`id` INT NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
|||
|
|
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
|
|||
|
|
`password_hash` VARCHAR(255) NOT NULL COMMENT '密码哈希',
|
|||
|
|
`email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
|
|||
|
|
`phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
|
|||
|
|
`role` ENUM('user', 'admin') NOT NULL DEFAULT 'user' COMMENT '用户角色',
|
|||
|
|
`status` ENUM('active', 'inactive', 'banned') NOT NULL DEFAULT 'active' COMMENT '账号状态',
|
|||
|
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
`last_login` TIMESTAMP NULL DEFAULT NULL COMMENT '最后登录时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `unique_username` (`username`),
|
|||
|
|
UNIQUE KEY `unique_email` (`email`),
|
|||
|
|
UNIQUE KEY `unique_phone` (`phone`),
|
|||
|
|
KEY `idx_username` (`username`),
|
|||
|
|
KEY `idx_email` (`email`),
|
|||
|
|
KEY `idx_role` (`role`)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
|||
|
|
|
|||
|
|
-- ========================================
|
|||
|
|
-- 表2: user_profiles(用户资料表)
|
|||
|
|
-- ========================================
|
|||
|
|
CREATE TABLE IF NOT EXISTS `user_profiles` (
|
|||
|
|
`id` INT NOT NULL AUTO_INCREMENT COMMENT '资料ID',
|
|||
|
|
`user_id` INT NOT NULL COMMENT '用户ID',
|
|||
|
|
`real_name` VARCHAR(50) DEFAULT NULL COMMENT '真实姓名',
|
|||
|
|
`gender` ENUM('male', 'female', 'other') DEFAULT NULL COMMENT '性别',
|
|||
|
|
`birth_date` DATE DEFAULT NULL COMMENT '出生日期',
|
|||
|
|
`id_card` VARCHAR(18) DEFAULT NULL COMMENT '身份证号',
|
|||
|
|
`education` VARCHAR(50) DEFAULT NULL COMMENT '学历',
|
|||
|
|
`major` VARCHAR(100) DEFAULT NULL COMMENT '专业',
|
|||
|
|
`school` VARCHAR(100) DEFAULT NULL COMMENT '学校',
|
|||
|
|
`graduation_year` YEAR DEFAULT NULL COMMENT '毕业年份',
|
|||
|
|
`city` VARCHAR(50) DEFAULT NULL COMMENT '所在城市',
|
|||
|
|
`address` TEXT DEFAULT NULL COMMENT '详细地址',
|
|||
|
|
`avatar_url` VARCHAR(255) DEFAULT NULL COMMENT '头像URL',
|
|||
|
|
`resume_url` VARCHAR(255) DEFAULT NULL COMMENT '简历URL',
|
|||
|
|
`self_intro` TEXT DEFAULT NULL COMMENT '自我介绍',
|
|||
|
|
`skills` TEXT DEFAULT NULL COMMENT '技能标签(JSON数组)',
|
|||
|
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|||
|
|
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
UNIQUE KEY `unique_user_id` (`user_id`),
|
|||
|
|
KEY `idx_user_id` (`user_id`),
|
|||
|
|
CONSTRAINT `fk_profile_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户资料表';
|
|||
|
|
|
|||
|
|
-- ========================================
|
|||
|
|
-- 表3: job_applications(投递记录表)
|
|||
|
|
-- ========================================
|
|||
|
|
CREATE TABLE IF NOT EXISTS `job_applications` (
|
|||
|
|
`id` INT NOT NULL AUTO_INCREMENT COMMENT '投递记录ID',
|
|||
|
|
`user_id` INT NOT NULL COMMENT '用户ID',
|
|||
|
|
`job_type` ENUM('transition', 'referral') NOT NULL COMMENT '岗位类型:transition-过渡岗位, referral-内推岗位',
|
|||
|
|
`job_name` VARCHAR(100) NOT NULL COMMENT '岗位名称',
|
|||
|
|
`company_name` VARCHAR(100) NOT NULL COMMENT '企业名称',
|
|||
|
|
`company_short_name` VARCHAR(50) DEFAULT NULL COMMENT '企业简称',
|
|||
|
|
`city` VARCHAR(50) DEFAULT NULL COMMENT '城市',
|
|||
|
|
`province` VARCHAR(50) DEFAULT NULL COMMENT '省份',
|
|||
|
|
`segment_name` VARCHAR(100) DEFAULT NULL COMMENT '业务板块名称',
|
|||
|
|
`status` ENUM('pending', 'reviewing', 'interviewed', 'offered', 'rejected', 'withdrawn') NOT NULL DEFAULT 'pending' COMMENT '投递状态',
|
|||
|
|
`application_data` JSON DEFAULT NULL COMMENT '投递详细数据(岗位详情JSON)',
|
|||
|
|
`applied_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '投递时间',
|
|||
|
|
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|||
|
|
`notes` TEXT DEFAULT NULL COMMENT '备注',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user_id` (`user_id`),
|
|||
|
|
KEY `idx_job_type` (`job_type`),
|
|||
|
|
KEY `idx_status` (`status`),
|
|||
|
|
KEY `idx_applied_at` (`applied_at`),
|
|||
|
|
CONSTRAINT `fk_application_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='投递记录表';
|
|||
|
|
|
|||
|
|
-- ========================================
|
|||
|
|
-- 表4: favorites(收藏表)
|
|||
|
|
-- ========================================
|
|||
|
|
CREATE TABLE IF NOT EXISTS `favorites` (
|
|||
|
|
`id` INT NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
|
|||
|
|
`user_id` INT NOT NULL COMMENT '用户ID',
|
|||
|
|
`favorite_type` ENUM('company', 'job') NOT NULL COMMENT '收藏类型',
|
|||
|
|
`company_name` VARCHAR(100) DEFAULT NULL COMMENT '企业名称',
|
|||
|
|
`job_name` VARCHAR(100) DEFAULT NULL COMMENT '岗位名称',
|
|||
|
|
`favorite_data` JSON DEFAULT NULL COMMENT '收藏详细数据',
|
|||
|
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收藏时间',
|
|||
|
|
PRIMARY KEY (`id`),
|
|||
|
|
KEY `idx_user_id` (`user_id`),
|
|||
|
|
KEY `idx_type` (`favorite_type`),
|
|||
|
|
UNIQUE KEY `unique_favorite` (`user_id`, `favorite_type`, `company_name`, `job_name`),
|
|||
|
|
CONSTRAINT `fk_favorite_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='收藏表';
|
|||
|
|
|
|||
|
|
-- ========================================
|
|||
|
|
-- 插入默认管理员账号
|
|||
|
|
-- ========================================
|
|||
|
|
-- 注意:密码哈希需要在Node.js中生成
|
|||
|
|
-- 默认密码:admin123456
|
|||
|
|
-- 这里使用bcrypt哈希后的值(rounds=10)
|
|||
|
|
INSERT INTO `users` (`username`, `password_hash`, `email`, `role`, `status`)
|
|||
|
|
VALUES (
|
|||
|
|
'admin',
|
|||
|
|
'$2a$10$YourBcryptHashWillBeGeneratedByNodeJS',
|
|||
|
|
'admin@ddcz.com',
|
|||
|
|
'admin',
|
|||
|
|
'active'
|
|||
|
|
) ON DUPLICATE KEY UPDATE `username` = `username`;
|
|||
|
|
|
|||
|
|
-- ========================================
|
|||
|
|
-- 授予权限(如果需要)
|
|||
|
|
-- ========================================
|
|||
|
|
-- 如果您使用的是root账号创建的数据库,需要给 ddcz_bitmap 授权
|
|||
|
|
-- GRANT ALL PRIVILEGES ON `ddcz_platform`.* TO 'ddcz_bitmap'@'%';
|
|||
|
|
-- FLUSH PRIVILEGES;
|
|||
|
|
|
|||
|
|
-- ========================================
|
|||
|
|
-- 验证表创建
|
|||
|
|
-- ========================================
|
|||
|
|
SELECT '✅ 数据库创建完成!' AS message;
|
|||
|
|
SHOW TABLES;
|
|||
|
|
SELECT '✅ 以上是已创建的表' AS message;
|
|||
|
|
|
|||
|
|
-- 查看users表结构
|
|||
|
|
DESC `users`;
|