Skip to content

Commit ccba2ee

Browse files
committed
修改 SQL 结构 2024 年 3 月 18 日
1 parent bc0c72d commit ccba2ee

File tree

4 files changed

+156
-29
lines changed

4 files changed

+156
-29
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,4 @@ build/
3232
### VS Code ###
3333
.vscode/
3434
src/main/resources/application-prod.yml
35+
/jmh-result.json

pom.xml

+12
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,18 @@
157157
<groupId>org.springframework.boot</groupId>
158158
<artifactId>spring-boot-starter-websocket</artifactId>
159159
</dependency>
160+
<dependency>
161+
<groupId>org.openjdk.jmh</groupId>
162+
<artifactId>jmh-core</artifactId>
163+
<version>1.23</version>
164+
</dependency>
165+
<dependency>
166+
<groupId>org.openjdk.jmh</groupId>
167+
<artifactId>jmh-generator-annprocess</artifactId>
168+
<version>1.23</version>
169+
<scope>provided</scope>
170+
</dependency>
171+
160172
</dependencies>
161173

162174
<build>

sql/bms_boot.sql sql/bms_boot_structure.sql

+97-29
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
/*
22
Navicat Premium Data Transfer
33
4-
Source Server : zty_mysql
4+
Source Server : localhost
55
Source Server Type : MySQL
6-
Source Server Version : 50719
6+
Source Server Version : 50716
77
Source Host : localhost:3306
88
Source Schema : bms_boot
99
1010
Target Server Type : MySQL
11-
Target Server Version : 50719
11+
Target Server Version : 50716
1212
File Encoding : 65001
1313
14-
Date: 15/03/2023 19:46:58
14+
Date: 18/03/2024 14:11:45
1515
*/
1616

1717
SET NAMES utf8mb4;
@@ -22,31 +22,45 @@ SET FOREIGN_KEY_CHECKS = 0;
2222
-- ----------------------------
2323
DROP TABLE IF EXISTS `t_admins`;
2424
CREATE TABLE `t_admins` (
25-
`admin_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '管理员表的唯一标识',
25+
`admin_id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '管理员表的唯一标识',
2626
`username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
2727
`password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码(MD5加密)',
2828
`admin_name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '管理员真实姓名',
2929
`status` int(1) NOT NULL COMMENT '1表示可用 0表示禁用',
3030
`create_time` datetime NOT NULL COMMENT '创建时间',
31-
`update_time` datetime NOT NULL COMMENT '更新时间',
31+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
3232
PRIMARY KEY (`admin_id`) USING BTREE
33-
) ENGINE = InnoDB AUTO_INCREMENT = 1624 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
33+
) ENGINE = InnoDB AUTO_INCREMENT = 1624 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
34+
35+
-- ----------------------------
36+
-- Table structure for t_ai_intelligent
37+
-- ----------------------------
38+
DROP TABLE IF EXISTS `t_ai_intelligent`;
39+
CREATE TABLE `t_ai_intelligent` (
40+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
41+
`input_message` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户输入信息',
42+
`ai_result` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT 'AI生成结果',
43+
`user_id` bigint(20) NULL DEFAULT NULL,
44+
`create_time` datetime NULL DEFAULT NULL,
45+
`update_time` datetime NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
46+
PRIMARY KEY (`id`) USING BTREE
47+
) ENGINE = InnoDB AUTO_INCREMENT = 1736624313104711683 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
3448

3549
-- ----------------------------
3650
-- Table structure for t_book_admins
3751
-- ----------------------------
3852
DROP TABLE IF EXISTS `t_book_admins`;
3953
CREATE TABLE `t_book_admins` (
40-
`book_admin_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '图书管理员表的唯一标识',
54+
`book_admin_id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '图书管理员表的唯一标识',
4155
`username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
4256
`password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码md5加密',
4357
`book_admin_name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '图书管理员真实姓名',
4458
`status` int(1) NOT NULL COMMENT '1表示可用 0表示禁用',
4559
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '电子邮箱',
4660
`create_time` datetime NOT NULL COMMENT '创建时间',
47-
`update_time` datetime NOT NULL COMMENT '更新时间',
61+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
4862
PRIMARY KEY (`book_admin_id`) USING BTREE
49-
) ENGINE = InnoDB AUTO_INCREMENT = 1546 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
63+
) ENGINE = InnoDB AUTO_INCREMENT = 1548 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
5064

5165
-- ----------------------------
5266
-- Table structure for t_book_rule
@@ -60,9 +74,9 @@ CREATE TABLE `t_book_rule` (
6074
`book_limit_library` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '限制的图书馆',
6175
`book_overdue_fee` double NOT NULL COMMENT '图书借阅后每天逾期费用',
6276
`create_time` datetime NOT NULL COMMENT '创建时间',
63-
`update_time` datetime NOT NULL COMMENT '更新时间',
77+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
6478
PRIMARY KEY (`rule_id`) USING BTREE
65-
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
79+
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
6680

6781
-- ----------------------------
6882
-- Table structure for t_book_type
@@ -73,9 +87,9 @@ CREATE TABLE `t_book_type` (
7387
`type_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '借阅类别的昵称',
7488
`type_content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '借阅类别的描述',
7589
`create_time` datetime NOT NULL COMMENT '创建时间',
76-
`update_time` datetime NOT NULL COMMENT '更新时间',
90+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
7791
PRIMARY KEY (`type_id`) USING BTREE
78-
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
92+
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
7993

8094
-- ----------------------------
8195
-- Table structure for t_books
@@ -92,9 +106,9 @@ CREATE TABLE `t_books` (
92106
`book_status` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '图书状态',
93107
`book_description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '图书描述',
94108
`create_time` datetime NOT NULL COMMENT '创建时间',
95-
`update_time` datetime NOT NULL COMMENT '更新时间',
109+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
96110
PRIMARY KEY (`book_id`) USING BTREE
97-
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
111+
) ENGINE = InnoDB AUTO_INCREMENT = 122 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
98112

99113
-- ----------------------------
100114
-- Table structure for t_books_borrow
@@ -103,14 +117,53 @@ DROP TABLE IF EXISTS `t_books_borrow`;
103117
CREATE TABLE `t_books_borrow` (
104118
`borrow_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '借阅表唯一标识',
105119
`card_number` bigint(11) NOT NULL COMMENT '借阅证编号 固定11位随机生成 用户和图书关联的唯一标识',
106-
`book_number` int(11) NOT NULL COMMENT '图书编号 图书唯一标识',
120+
`book_number` bigint(11) NOT NULL COMMENT '图书编号 图书唯一标识',
107121
`borrow_date` datetime NOT NULL COMMENT '借阅日期',
108122
`close_date` datetime NOT NULL COMMENT '截止日期',
109123
`return_date` datetime NULL DEFAULT NULL COMMENT '归还日期',
110124
`create_time` datetime NOT NULL COMMENT '创建时间',
111-
`update_time` datetime NOT NULL COMMENT '更新时间',
125+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
112126
PRIMARY KEY (`borrow_id`) USING BTREE
113-
) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
127+
) ENGINE = InnoDB AUTO_INCREMENT = 45 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
128+
129+
-- ----------------------------
130+
-- Table structure for t_chart
131+
-- ----------------------------
132+
DROP TABLE IF EXISTS `t_chart`;
133+
CREATE TABLE `t_chart` (
134+
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
135+
`name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '图标名称',
136+
`goal` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '分析目标',
137+
`chart_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '图标数据',
138+
`chart_type` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '图标类型',
139+
`gen_chart` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '生成的图标数据',
140+
`gen_result` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '生成的分析结论',
141+
`status` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'wait' COMMENT 'wait,running,succeed,failed',
142+
`exec_message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '执行信息',
143+
`admin_id` bigint(20) NULL DEFAULT NULL COMMENT '创建管理员 id',
144+
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
145+
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
146+
`isDelete` tinyint(4) NOT NULL DEFAULT 0 COMMENT '是否删除',
147+
PRIMARY KEY (`id`) USING BTREE
148+
) ENGINE = InnoDB AUTO_INCREMENT = 1736624602977255426 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '图表信息表' ROW_FORMAT = DYNAMIC;
149+
150+
-- ----------------------------
151+
-- Table structure for t_chat
152+
-- ----------------------------
153+
DROP TABLE IF EXISTS `t_chat`;
154+
CREATE TABLE `t_chat` (
155+
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '聊天记录id\r\n',
156+
`from_id` bigint(20) NOT NULL COMMENT '发送消息者id\r\n',
157+
`to_id` bigint(20) NULL DEFAULT NULL COMMENT '接受消息者id,可以为空',
158+
`text` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息内容',
159+
`chat_type` tinyint(4) NOT NULL COMMENT '聊天类型 1-私聊 2-群聊',
160+
`create_time` datetime NOT NULL COMMENT '创建时间',
161+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
162+
`message_type` int(1) NOT NULL COMMENT '消息类型 1 文本 2 撤回消息 3 图片 4 语音 5 视频',
163+
`role` int(11) NOT NULL COMMENT '消息发送者身份 1 用户 2 图书管理员',
164+
`reply_message` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '回复的消息内容',
165+
PRIMARY KEY (`id`) USING BTREE
166+
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
114167

115168
-- ----------------------------
116169
-- Table structure for t_comment
@@ -123,9 +176,9 @@ CREATE TABLE `t_comment` (
123176
`comment_message` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '弹幕的内容',
124177
`comment_time` int(11) NOT NULL COMMENT '留言的时间(控制速度)',
125178
`create_time` datetime NOT NULL COMMENT '创建时间',
126-
`update_time` datetime NOT NULL COMMENT '更新时间',
179+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
127180
PRIMARY KEY (`comment_id`) USING BTREE
128-
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
181+
) ENGINE = InnoDB AUTO_INCREMENT = 65 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = COMPACT;
129182

130183
-- ----------------------------
131184
-- Table structure for t_notice
@@ -137,26 +190,41 @@ CREATE TABLE `t_notice` (
137190
`notice_content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '公告内容',
138191
`notice_admin_id` int(11) NOT NULL COMMENT '发布公告的管理员id',
139192
`create_time` datetime NOT NULL COMMENT '创建时间',
140-
`update_time` datetime NOT NULL COMMENT '更新时间',
193+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
141194
PRIMARY KEY (`notice_id`) USING BTREE
142-
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
195+
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
196+
197+
-- ----------------------------
198+
-- Table structure for t_user_interface_info
199+
-- ----------------------------
200+
DROP TABLE IF EXISTS `t_user_interface_info`;
201+
CREATE TABLE `t_user_interface_info` (
202+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
203+
`user_id` bigint(20) NOT NULL COMMENT '用户id或管理员id',
204+
`interface_id` bigint(20) NOT NULL COMMENT '1 表示AI聊天接口 2表示智能分析接口 ',
205+
`total_num` int(11) NOT NULL DEFAULT 0 COMMENT '总共调用接口次数\r\n',
206+
`left_num` int(11) NOT NULL DEFAULT 0 COMMENT '剩余接口可用次数',
207+
`create_time` datetime NOT NULL COMMENT '创建时间',
208+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
209+
PRIMARY KEY (`id`) USING BTREE
210+
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
143211

144212
-- ----------------------------
145213
-- Table structure for t_users
146214
-- ----------------------------
147215
DROP TABLE IF EXISTS `t_users`;
148216
CREATE TABLE `t_users` (
149-
`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户表的唯一标识',
217+
`user_id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '用户表的唯一标识',
150218
`username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
151219
`password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码 MD5加密',
152220
`card_name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '真实姓名',
153221
`card_number` bigint(11) NOT NULL COMMENT '借阅证编号 固定11位随机生成 非空',
154222
`rule_number` int(11) NOT NULL COMMENT '规则编号 可以自定义也就是权限功能',
155223
`status` int(1) NOT NULL COMMENT '1表示可用 0表示禁用',
156224
`create_time` datetime NOT NULL COMMENT '创建时间',
157-
`update_time` datetime NOT NULL COMMENT '更新时间',
225+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
158226
PRIMARY KEY (`user_id`) USING BTREE
159-
) ENGINE = InnoDB AUTO_INCREMENT = 2544 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
227+
) ENGINE = InnoDB AUTO_INCREMENT = 2546 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
160228

161229
-- ----------------------------
162230
-- Table structure for t_violation
@@ -165,15 +233,15 @@ DROP TABLE IF EXISTS `t_violation`;
165233
CREATE TABLE `t_violation` (
166234
`violation_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '违章表唯一标识',
167235
`card_number` bigint(11) NOT NULL COMMENT '借阅证编号 11位 随机生成',
168-
`book_number` int(11) NOT NULL COMMENT '图书编号 图书唯一标识',
236+
`book_number` bigint(11) NOT NULL COMMENT '图书编号 图书唯一标识',
169237
`borrow_date` datetime NOT NULL COMMENT '借阅日期',
170238
`close_date` datetime NOT NULL COMMENT '截止日期',
171239
`return_date` datetime NULL DEFAULT NULL COMMENT '归还日期',
172240
`violation_message` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '违章信息',
173241
`violation_admin_id` int(11) NOT NULL COMMENT '违章信息管理员的id',
174242
`create_time` datetime NOT NULL COMMENT '创建时间',
175-
`update_time` datetime NOT NULL COMMENT '更新时间',
243+
`update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
176244
PRIMARY KEY (`violation_id`) USING BTREE
177-
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
245+
) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
178246

179247
SET FOREIGN_KEY_CHECKS = 1;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.book.backend;
2+
3+
import org.openjdk.jmh.annotations.*;
4+
import org.openjdk.jmh.results.format.ResultFormatType;
5+
import org.openjdk.jmh.runner.Runner;
6+
import org.openjdk.jmh.runner.options.Options;
7+
import org.openjdk.jmh.runner.options.OptionsBuilder;
8+
9+
import java.util.concurrent.TimeUnit;
10+
11+
@BenchmarkMode(Mode.Throughput)
12+
@OutputTimeUnit(TimeUnit.MILLISECONDS)
13+
@State(Scope.Thread)
14+
@Warmup(iterations = 3, time = 1, timeUnit = TimeUnit.SECONDS)
15+
@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)
16+
@Fork(1)
17+
@Threads(2)
18+
public class BenchmarkTest {
19+
@Benchmark
20+
public long shift() {
21+
long t = 455565655225562L;
22+
long a = 0;
23+
for (int i = 0; i < 1000; i++) {
24+
a = t >> 30;
25+
}
26+
return a;
27+
}
28+
29+
@Benchmark
30+
public long div() {
31+
long t = 455565655225562L;
32+
long a = 0;
33+
for (int i = 0; i < 1000; i++) {
34+
a = t / 1024 / 1024 / 1024;
35+
}
36+
return a;
37+
}
38+
39+
public static void main(String[] args) throws Exception {
40+
Options opts = new OptionsBuilder()
41+
.include(BenchmarkTest.class.getSimpleName())
42+
.resultFormat(ResultFormatType.JSON)
43+
.build();
44+
new Runner(opts).run();
45+
}
46+
}

0 commit comments

Comments
 (0)