blob: 8bb0c85aa0061f4f91f719b76a355fd801d480ae [file] [log] [blame]
Your Name695f6a62025-05-17 00:58:04 +08001CREATE TABLE `user` (
2 `user_id` INT PRIMARY KEY AUTO_INCREMENT,
3 `username` VARCHAR(255) NOT NULL UNIQUE,
4 `email` VARCHAR(255) NOT NULL UNIQUE,
5 `password` VARCHAR(255) NOT NULL,
6 `address` VARCHAR(255),
7 `role` VARCHAR(50) NOT NULL DEFAULT 'user',
8 `profile_pic` VARCHAR(255),
9 `registration_date` DATETIME NOT NULL, -- 推荐用时间类型(而非字符串)
10 `identification_number` VARCHAR(18), -- 身份证号建议用 VARCHAR(18)
11 `avatar` VARCHAR(255),
12 `isfollowed` BOOLEAN NOT NULL DEFAULT FALSE,
13 INDEX `idx_user_id` (`user_id`) -- 可选:主键通常自带索引
14) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
15
16CREATE TABLE invite_code (
17 code VARCHAR(20) PRIMARY KEY,
18 max_uses INT NOT NULL,
19 remaining_uses INT NOT NULL,
20 expiry_time DATETIME NOT NULL,
21 created_by INT NOT NULL,
22 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
23 FOREIGN KEY (created_by) REFERENCES user(user_id)
24);
25
26CREATE TABLE user_follow (
27 follower_id INT NOT NULL,
28 followed_id INT NOT NULL,
29 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
30 PRIMARY KEY (follower_id, followed_id),
31 FOREIGN KEY (follower_id) REFERENCES user(user_id),
32 FOREIGN KEY (followed_id) REFERENCES user(user_id)
33);
34
35INSERT INTO `user` (
36 username, email, password, registration_date, identification_number, role
37) VALUES (
38 'admin', 'admin@example.com', 'admin123', NOW(), 87654321, 'admin'
39 );
40
41INSERT INTO invite_code (
42 code, max_uses, remaining_uses, expiry_time, created_by
43) VALUES
44 ('WELCOME2025', 5, 5, '2026-01-01 00:00:00', 1),
45 ('INVITEONLY', 3, 3, '2025-12-31 23:59:59', 1);