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