blob: b5daae457aabd28353cd7d040e16aaa469a79d33 [file] [log] [blame]
root4b6a76b2025-05-09 04:57:59 +00001-- 用户表
2CREATE TABLE `User` (
3 `user_id` VARCHAR(36) NOT NULL,
4 `email` VARCHAR(255) NOT NULL,
5 `username` VARCHAR(100) NOT NULL,
6 `password` VARCHAR(255) NOT NULL,
7 `gender` ENUM('m','f') NOT NULL,
8 `school` VARCHAR(255) DEFAULT NULL,
9 `avatar_url` VARCHAR(255) DEFAULT NULL,
10 `bio` TEXT,
11 `account_status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=正常,1=被ban',
12 `invite_left` INT NOT NULL DEFAULT 0,
13 PRIMARY KEY (`user_id`,`email`),
14 UNIQUE KEY `uniq_email` (`email`)
15) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
16
17-- 用户邀请表
18CREATE TABLE `UserInvite` (
19 `user_id` VARCHAR(36) NOT NULL,
20 `inviter_email` VARCHAR(255) NOT NULL,
21 `inviter_registered` TINYINT(1) NOT NULL DEFAULT 0,
22 PRIMARY KEY (`user_id`,`inviter_email`),
23 CONSTRAINT `fk_ui_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
24) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
25
26-- 用户 PT 信息表
27CREATE TABLE `UserPT` (
28 `user_id` VARCHAR(36) NOT NULL,
29 `magic` INT NOT NULL DEFAULT 0,
30 `uploaded` BIGINT NOT NULL DEFAULT 0,
31 `downloaded` BIGINT NOT NULL DEFAULT 0,
32 `ratio` DECIMAL(5,2) NOT NULL DEFAULT 0.00,
33 `default_seed_path` VARCHAR(255) DEFAULT NULL,
34 `vip_downloads` INT NOT NULL DEFAULT 0,
35 PRIMARY KEY (`user_id`),
36 CONSTRAINT `fk_pt_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
37) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
38
39-- 种子表
40CREATE TABLE `Seed` (
41 `seed_id` VARCHAR(64) NOT NULL,
42 `owner_user_id` VARCHAR(36) NOT NULL,
43 `fake_hits` INT NOT NULL DEFAULT 0,
44 `last_fake_check` DATETIME DEFAULT NULL,
45 `external_url` VARCHAR(255) DEFAULT NULL,
46 `title` VARCHAR(255) NOT NULL,
47 `subtitle` VARCHAR(255) DEFAULT NULL,
48 `size` VARCHAR(50) NOT NULL,
49 `tags` VARCHAR(255) DEFAULT NULL,
50 `popularity` INT NOT NULL DEFAULT 0,
51 PRIMARY KEY (`seed_id`),
52 CONSTRAINT `fk_seed_user` FOREIGN KEY (`owner_user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
53) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
54
55-- 种子下载表
56CREATE TABLE `SeedDownload` (
57 `task_id` VARCHAR(64) NOT NULL,
58 `user_id` VARCHAR(36) NOT NULL,
59 `seed_id` VARCHAR(64) NOT NULL,
60 `download_start` DATETIME NOT NULL,
61 `download_end` DATETIME DEFAULT NULL,
62 `is_dedicated` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=普通,1=专线',
63 `client_ip` VARCHAR(45) DEFAULT NULL,
64 PRIMARY KEY (`task_id`),
65 CONSTRAINT `fk_sd_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
66 CONSTRAINT `fk_sd_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
67) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
68
69-- 缓存种子数据表
70CREATE TABLE `VipSeed` (
71 `seed_id` VARCHAR(64) NOT NULL,
72 `seeder_count` INT NOT NULL DEFAULT 0,
73 `reward_magic` INT NOT NULL DEFAULT 0,
74 `stop_caching` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=继续缓存,1=不缓存',
75 PRIMARY KEY (`seed_id`),
76 CONSTRAINT `fk_vip_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
77) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
78
79-- 传输信息表
80CREATE TABLE `Transport` (
81 `task_id` VARCHAR(64) NOT NULL,
82 `uploader_id` VARCHAR(36) NOT NULL,
83 `downloader_id` VARCHAR(36) NOT NULL,
84 `seed_id` VARCHAR(64) NOT NULL,
85 `uploaded` BIGINT NOT NULL DEFAULT 0,
86 `downloaded` BIGINT NOT NULL DEFAULT 0,
87 `upload_peak` BIGINT NOT NULL DEFAULT 0,
88 `download_peak` BIGINT NOT NULL DEFAULT 0,
89 PRIMARY KEY (`task_id`, `uploader_id`, `downloader_id`),
90 CONSTRAINT `fk_tr_user_up` FOREIGN KEY (`uploader_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
91 CONSTRAINT `fk_tr_user_down` FOREIGN KEY (`downloader_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
92 CONSTRAINT `fk_tr_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
93) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
94
95-- 求种任务表
96CREATE TABLE `BegSeed` (
97 `beg_id` VARCHAR(64) NOT NULL,
98 `beg_count` INT NOT NULL DEFAULT 0,
99 `reward_magic` INT NOT NULL DEFAULT 0,
100 `deadline` DATETIME NOT NULL,
101 `has_match` TINYINT(1) NOT NULL DEFAULT 0,
102 PRIMARY KEY (`beg_id`)
103) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
104
105-- 提交悬赏任务表
106CREATE TABLE `SubmitSeed` (
107 `beg_id` VARCHAR(64) NOT NULL,
108 `seed_id` VARCHAR(64) NOT NULL,
109 `votes` INT NOT NULL DEFAULT 0,
110 PRIMARY KEY (`beg_id`,`seed_id`),
111 CONSTRAINT `fk_ss_beg` FOREIGN KEY (`beg_id`) REFERENCES `BegSeed`(`beg_id`) ON DELETE CASCADE,
112 CONSTRAINT `fk_ss_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
113) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
114
115-- 帖子表
116CREATE TABLE `Post` (
117 `post_id` VARCHAR(64) NOT NULL,
118 `title` VARCHAR(255) NOT NULL,
119 `content` TEXT NOT NULL,
120 `author_id` VARCHAR(36) NOT NULL,
121 `created_at` DATETIME NOT NULL,
122 `reply_count` INT NOT NULL DEFAULT 0,
123 `view_count` INT NOT NULL DEFAULT 0,
124 PRIMARY KEY (`post_id`),
125 CONSTRAINT `fk_post_user` FOREIGN KEY (`author_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
126) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
127
128-- 帖子回复表
129CREATE TABLE `PostReply` (
130 `reply_id` VARCHAR(64) NOT NULL,
131 `post_id` VARCHAR(64) NOT NULL,
132 `content` TEXT NOT NULL,
133 `author_id` VARCHAR(36) NOT NULL,
134 `created_at` DATETIME NOT NULL,
135 PRIMARY KEY (`reply_id`),
136 CONSTRAINT `fk_pr_post` FOREIGN KEY (`post_id`) REFERENCES `Post`(`post_id`) ON DELETE CASCADE,
137 CONSTRAINT `fk_pr_user` FOREIGN KEY (`author_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
138) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
139
140-- 公告表
141CREATE TABLE `Announcement` (
142 `announce_id` VARCHAR(64) NOT NULL,
143 `content` TEXT NOT NULL,
144 `is_public` TINYINT(1) NOT NULL DEFAULT 0,
145 `tag` VARCHAR(100) DEFAULT NULL,
146 PRIMARY KEY (`announce_id`)
147) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
148
149-- 用户收藏夹表
150CREATE TABLE `UserFavorite` (
151 `user_id` VARCHAR(36) NOT NULL,
152 `seed_id` VARCHAR(64) NOT NULL,
153 PRIMARY KEY (`user_id`,`seed_id`),
154 CONSTRAINT `fk_uf_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
155 CONSTRAINT `fk_uf_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
156) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
157
158-- 用户迁移表
159CREATE TABLE `UserMigration` (
160 `migration_id` VARCHAR(64) NOT NULL,
161 `user_id` VARCHAR(36) NOT NULL,
162 `application_url` VARCHAR(255) NOT NULL,
163 `approved` TINYINT(1) NOT NULL DEFAULT 0,
164 `pending_magic` INT NOT NULL DEFAULT 0,
165 `granted_magic` INT NOT NULL DEFAULT 0,
166 `pending_uploaded` BIGINT NOT NULL DEFAULT 0,
167 `granted_uploaded` BIGINT NOT NULL DEFAULT 0,
168 PRIMARY KEY (`migration_id`),
169 CONSTRAINT `fk_um_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
170) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
171