ZBD | b704c9f | 2025-05-23 21:51:39 +0800 | [diff] [blame^] | 1 | -- 创建数据库(如果不存在) |
| 2 | -- 请确保您的Docker Compose配置中的数据库名称与此处一致 |
| 3 | CREATE DATABASE IF NOT EXISTS mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; |
| 4 | |
| 5 | -- 切换到目标数据库 |
| 6 | USE mydatabase; |
| 7 | |
| 8 | -- 删除表(如果已存在),以便重新创建 |
| 9 | DROP TABLE IF EXISTS `user`; |
| 10 | |
| 11 | -- 创建用户表 |
| 12 | CREATE TABLE `user` ( |
| 13 | `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '用户ID,主键,自增长', |
| 14 | `username` VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名,唯一,不可为空', |
| 15 | `password` VARCHAR(100) NOT NULL COMMENT '密码,存储加密后的密码,不可为空', |
| 16 | `email` VARCHAR(100) NULL DEFAULT NULL COMMENT '邮箱地址', |
| 17 | `status` INT NOT NULL DEFAULT 1 COMMENT '用户状态,例如 0:禁用, 1:启用,默认为1', |
| 18 | `score` INT NOT NULL DEFAULT 0 COMMENT '用户积分,默认为0', |
| 19 | `role` VARCHAR(20) NOT NULL DEFAULT 'USER' COMMENT '用户角色,例如 ADMIN, USER,默认为USER', |
| 20 | `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', |
| 21 | `update_time` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', |
| 22 | PRIMARY KEY (`id`), |
| 23 | UNIQUE KEY `uk_username` (`username`) -- 确保用户名唯一 |
| 24 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表'; |
| 25 | |
| 26 | -- 可选:插入一条测试用户数据 |
| 27 | -- 请注意:这里的密码 'password123' 是明文,您需要用您应用中配置的BCryptPasswordEncoder加密后的密码替换它 |
| 28 | -- 例如,使用 Spring Security 的 BCryptPasswordEncoder 对 'your_secure_password' 进行加密 |
| 29 | -- SELECT '$2a$10$YOUR_BCRYPT_HASH_HERE'; -- 替换这里的哈希值 |
| 30 | |
| 31 | INSERT INTO `user` (`username`, `password`, `email`, `status`, `score`, `role`, `create_time`, `update_time`) |
| 32 | VALUES ( |
| 33 | 'testuser', |
| 34 | '$$2a$10$EEBnvonhdTGA0StQHdxMUeAQyxm1uvJOKkHu01Pe0B9a2vfGH3cge', -- 请用加密后的密码替换此处的占位符 |
| 35 | 'test@example.com', |
| 36 | 1, -- 启用状态 |
| 37 | 100, -- 初始积分 |
| 38 | 'USER', -- 默认角色 |
| 39 | CURRENT_TIMESTAMP, |
| 40 | CURRENT_TIMESTAMP |
| 41 | ); |
| 42 | |
| 43 | |