-
Notifications
You must be signed in to change notification settings - Fork 135
/
Copy pathblog.sql
311 lines (289 loc) · 16.3 KB
/
blog.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
/*
Navicat Premium Data Transfer
Source Server : 华为云root
Source Server Type : MySQL
Source Server Version : 80036 (8.0.36)
Source Host : 120.46.147.178:3306
Source Schema : blog
Target Server Type : MySQL
Target Server Version : 80036 (8.0.36)
File Encoding : 65001
Date: 30/01/2025 11:17:31
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for advertisement
-- ----------------------------
DROP TABLE IF EXISTS `advertisement`;
CREATE TABLE `advertisement` (
`id` bigint NOT NULL COMMENT 'ID',
`position` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '在那个页面的推广',
`indexes` int NOT NULL COMMENT '排序索引值',
`poster_file_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '海报文件名称',
`url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '活动地址',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_position_indexes`(`position` ASC, `indexes` ASC) USING BTREE,
INDEX `idx_create_time`(`create_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '广告投放' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for answer
-- ----------------------------
DROP TABLE IF EXISTS `answer`;
CREATE TABLE `answer` (
`id` bigint NOT NULL COMMENT 'ID',
`problem_id` bigint NOT NULL COMMENT '问题ID',
`content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '回答内容',
`author` bigint NOT NULL COMMENT '回答者ID',
`create_time` datetime NOT NULL COMMENT '回答时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_problem_time`(`problem_id` ASC, `create_time` ASC) USING BTREE,
INDEX `idx_author`(`author` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '问答中的答案表' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for article
-- ----------------------------
DROP TABLE IF EXISTS `article`;
CREATE TABLE `article` (
`id` bigint NOT NULL COMMENT '文章ID',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文章标题',
`description` varchar(240) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文章介绍',
`author` bigint NOT NULL COMMENT '发布者ID',
`content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文章内容',
`cover_file_name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面图片名称',
`reprint` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '转载地址,原创为null',
`state` int NOT NULL COMMENT '文章状态',
`theme_id` bigint NOT NULL COMMENT '主题ID,默认为default',
`view_count` int NOT NULL DEFAULT 0 COMMENT '阅读次数',
`update_time` datetime NULL DEFAULT NULL COMMENT '最近一次更新的时间',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `useri_id`(`author` ASC) USING BTREE COMMENT '对作者ID进行索引,方便查询用户列表中的文章发布情况',
INDEX `state`(`state` ASC) USING BTREE COMMENT '可以更快查询到文章和草稿数量 用于大屏',
INDEX `create_time`(`create_time` DESC) USING BTREE COMMENT '加快管理员查询文章列表页面的查询速度',
INDEX `reprint`(`reprint`(191) ASC) USING BTREE,
INDEX `idx_state_time`(`state` ASC, `create_time` ASC) USING BTREE,
INDEX `idx_theme`(`theme_id` ASC) USING BTREE,
INDEX `idx_reprint`(`reprint`(191) ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文章表' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for article_tag
-- ----------------------------
DROP TABLE IF EXISTS `article_tag`;
CREATE TABLE `article_tag` (
`id` bigint NOT NULL COMMENT '记录ID',
`belong_id` bigint NOT NULL COMMENT '对应ID',
`tag_id` bigint NOT NULL COMMENT '标签ID',
`type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文章还是问题',
PRIMARY KEY (`id`) USING BTREE,
INDEX `article_id`(`belong_id`) USING BTREE,
INDEX `tag_id`(`tag_id`) USING BTREE,
INDEX `belong_id`(`belong_id`, `tag_id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = FIXED;
-- ----------------------------
-- Table structure for collection
-- ----------------------------
DROP TABLE IF EXISTS `collection`;
CREATE TABLE `collection` (
`id` bigint NOT NULL COMMENT 'ID',
`belong_id` bigint NOT NULL COMMENT '文章ID',
`favorites_id` bigint NOT NULL COMMENT '所属收藏夹的ID',
`type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'article或者problem',
`user_id` bigint NOT NULL COMMENT '用户ID',
`create_time` datetime NOT NULL COMMENT '收藏时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `belong_id`(`belong_id` ASC) USING BTREE,
INDEX `user_id`(`user_id` ASC) USING BTREE,
INDEX `favorites_id`(`favorites_id` ASC) USING BTREE,
INDEX `idx_user_favorites`(`user_id` ASC, `favorites_id` ASC, `create_time` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '收藏表,对问题和文章进行收藏' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for comment
-- ----------------------------
DROP TABLE IF EXISTS `comment`;
CREATE TABLE `comment` (
`id` bigint NOT NULL COMMENT 'ID',
`type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'article或者problem、answer',
`belong_id` bigint NOT NULL COMMENT '所属上级的ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '内容',
`reply` bigint NULL DEFAULT NULL COMMENT '是否是对某个评论的回复,不是则为null是则为对应的评论id',
`comment_pics` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '评论中使用到的图片',
`is_review` tinyint NOT NULL COMMENT '是否已经审查了',
`create_time` datetime NOT NULL COMMENT '评论时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `belong_id`(`belong_id` ASC) USING BTREE,
INDEX `user_id`(`user_id` ASC) USING BTREE,
INDEX `idx_belong_time`(`belong_id` ASC, `create_time` ASC) USING BTREE,
INDEX `idx_user`(`user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '评论表,存储文章、问题、答案的评论' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for external_link
-- ----------------------------
DROP TABLE IF EXISTS `external_link`;
CREATE TABLE `external_link` (
`id` bigint NOT NULL COMMENT 'ID',
`href` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网站域名',
`create_time` datetime NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for favorites
-- ----------------------------
DROP TABLE IF EXISTS `favorites`;
CREATE TABLE `favorites` (
`id` bigint NOT NULL COMMENT 'ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '介绍',
`is_private` tinyint(1) NOT NULL COMMENT '是否设置为隐私文件夹',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for follow
-- ----------------------------
DROP TABLE IF EXISTS `follow`;
CREATE TABLE `follow` (
`id` bigint NOT NULL COMMENT 'ID',
`type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '关注的类型:user、problem',
`belong_id` bigint NOT NULL COMMENT '被关注的ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`create_time` datetime NOT NULL COMMENT '关注时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `belong_id`(`belong_id` ASC) USING BTREE,
INDEX `user_id`(`user_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '关注表,用来关注问题或者用户' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for friendly_link
-- ----------------------------
DROP TABLE IF EXISTS `friendly_link`;
CREATE TABLE `friendly_link` (
`id` bigint NOT NULL COMMENT 'ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网站名称',
`url` varchar(120) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '网站链接',
`user_id` bigint NULL DEFAULT NULL COMMENT '对应用户的ID',
`state` int NOT NULL COMMENT '状态',
`logo_file_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '图片Logo',
`create_time` datetime NOT NULL COMMENT '加入时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `url`(`url` ASC) USING BTREE,
UNIQUE INDEX `user_id`(`user_id` ASC) USING BTREE COMMENT '一个用户只能申请一次友联'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '友情链接表' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for likes
-- ----------------------------
DROP TABLE IF EXISTS `likes`;
CREATE TABLE `likes` (
`id` bigint NOT NULL COMMENT '记录ID',
`type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'article或者problem、answer',
`user_id` bigint NOT NULL COMMENT '用户ID',
`belong_id` bigint NOT NULL COMMENT '文章ID',
`create_time` datetime NOT NULL COMMENT '点赞时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `user_id`(`user_id` ASC) USING BTREE,
INDEX `belong_id`(`belong_id` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '点赞表,用于储存文章点赞、问题点赞、答案点赞' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for notice
-- ----------------------------
DROP TABLE IF EXISTS `notice`;
CREATE TABLE `notice` (
`id` bigint NOT NULL COMMENT 'ID',
`user_id` bigint NOT NULL COMMENT '用户ID',
`relation_id` bigint NOT NULL COMMENT '对某个表的主键进行关联,例(article_id,follow_id)',
`type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '什么类型的通知',
`is_read` tinyint(1) NOT NULL COMMENT '是否已读',
`create_time` datetime NOT NULL COMMENT '发送时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知表' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for problem
-- ----------------------------
DROP TABLE IF EXISTS `problem`;
CREATE TABLE `problem` (
`id` bigint NOT NULL COMMENT 'ID',
`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '问题题目',
`content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '问题内容',
`author` bigint NOT NULL COMMENT '发布人ID',
`answer_id` bigint NULL DEFAULT NULL COMMENT '采纳答案的ID',
`theme_id` bigint NOT NULL COMMENT '主题ID默认default的ID',
`view_count` int NOT NULL COMMENT '阅读量',
`create_time` datetime NOT NULL COMMENT '发布时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_theme_time`(`theme_id` ASC, `create_time` ASC) USING BTREE,
INDEX `idx_view_count`(`view_count` DESC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '问答中的问题表' ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for recommend
-- ----------------------------
DROP TABLE IF EXISTS `recommend`;
CREATE TABLE `recommend` (
`id` bigint NOT NULL COMMENT '文章ID',
`recommend` int NULL DEFAULT NULL COMMENT '推荐查询的索引值',
`newest` int NULL DEFAULT NULL COMMENT '最新查询的索引值',
`hottest` int NULL DEFAULT NULL COMMENT '最热查询的索引值',
PRIMARY KEY (`id`) USING BTREE,
INDEX `recommend`(`id` DESC, `recommend` DESC) USING BTREE,
INDEX `newest`(`id` DESC, `newest` DESC) USING BTREE,
INDEX `hottest`(`id` DESC, `hottest` DESC) USING BTREE,
INDEX `recommend_2`(`recommend` DESC) USING BTREE,
INDEX `newest_2`(`newest` ASC) USING BTREE,
INDEX `hottest_2`(`hottest` DESC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文章推荐表注释' ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for tag
-- ----------------------------
DROP TABLE IF EXISTS `tag`;
CREATE TABLE `tag` (
`id` bigint NOT NULL COMMENT 'ID',
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'tag名称',
`belong_id` bigint NULL DEFAULT NULL COMMENT '所属Type的ID',
`icon_file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'ICON文件名称',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '标签介绍',
`indexes` int NOT NULL COMMENT '索引值',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = COMPACT;
-- ----------------------------
-- Table structure for theme
-- ----------------------------
DROP TABLE IF EXISTS `theme`;
CREATE TABLE `theme` (
`id` bigint NOT NULL COMMENT 'ID',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主题名称',
`content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'CSS样式内容',
`author` bigint NOT NULL COMMENT '创建者ID',
`state` int NOT NULL COMMENT '状态 1为使用 0为正在申请',
`indexes` int NOT NULL COMMENT '排序',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint NOT NULL COMMENT '用户ID',
`name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '昵称',
`auth` int NOT NULL COMMENT '身份',
`email` varchar(80) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户邮箱',
`github` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'GitHub ID',
`password` char(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码',
`state` int NOT NULL DEFAULT 1 COMMENT '状态,(权限)',
`description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '自我介绍',
`site` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '个人网站',
`unit` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属单位',
`location` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所在地区',
`avatar_file_name` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '头像图片名称',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `email`(`email` ASC) USING BTREE,
UNIQUE INDEX `id`(`id` ASC) USING BTREE,
UNIQUE INDEX `github`(`github` ASC) USING BTREE,
INDEX `create_time`(`create_time` ASC) USING BTREE,
INDEX `idx_name`(`name` ASC) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户数据表' ROW_FORMAT = COMPACT;
SET FOREIGN_KEY_CHECKS = 1;