Files
all-in-one-sys/scripts/database-setup.sql

144 lines
7.0 KiB
MySQL
Raw Normal View History

-- ========================================
-- 多多畅职平台 - 完整数据库初始化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`;