From 23eebcbbebd2a177ec554b27293e43287d9a747a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=8A=E6=97=A5=E4=B8=8D=E5=BC=80=E5=BC=A0?= <3251568189@qq.com> Date: Mon, 23 Dec 2024 05:08:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B3=E4=BA=8E=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E7=9A=84sql=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test.sql | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ 测试说明.txt | 42 ++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 test.sql create mode 100644 测试说明.txt diff --git a/test.sql b/test.sql new file mode 100644 index 0000000..6b61bd7 --- /dev/null +++ b/test.sql @@ -0,0 +1,91 @@ +/* + Navicat MySQL Dump SQL + + Source Server : test + Source Server Type : MySQL + Source Server Version : 90100 (9.1.0) + Source Host : localhost:3306 + Source Schema : test + + Target Server Type : MySQL + Target Server Version : 90100 (9.1.0) + File Encoding : 65001 + + Date: 23/12/2024 05:02:32 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for posts +-- ---------------------------- +DROP TABLE IF EXISTS `posts`; +CREATE TABLE `posts` ( + `PostID` int NOT NULL AUTO_INCREMENT, + `Title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `Content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `PublishTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `AuthorID` int NOT NULL, + `ReviewStatus` enum('approved','pending','rejected') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'pending', + `IsRecommended` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`PostID`) USING BTREE, + INDEX `AuthorID`(`AuthorID` ASC) USING BTREE, + CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`AuthorID`) REFERENCES `users` (`UserID`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of posts +-- ---------------------------- +INSERT INTO `posts` VALUES (1, '第一篇文章', '这是管理员发布的第一篇文章内容...', '2024-12-23 04:46:27', 1, 'approved', 1); +INSERT INTO `posts` VALUES (2, '第二篇文章', '这是普通用户发布的一篇文章内容...', '2024-12-23 04:46:27', 2, 'pending', 0); + +-- ---------------------------- +-- Table structure for user_security_questions_answers +-- ---------------------------- +DROP TABLE IF EXISTS `user_security_questions_answers`; +CREATE TABLE `user_security_questions_answers` ( + `RecordID` int NOT NULL AUTO_INCREMENT, + `UserID` int NOT NULL, + `QuestionNumber` tinyint NOT NULL, + `QuestionContent` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `AnswerHash` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + PRIMARY KEY (`RecordID`) USING BTREE, + UNIQUE INDEX `UserID`(`UserID` ASC, `QuestionNumber` ASC) USING BTREE, + CONSTRAINT `user_security_questions_answers_ibfk_1` FOREIGN KEY (`UserID`) REFERENCES `users` (`UserID`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `user_security_questions_answers_chk_1` CHECK (`QuestionNumber` in (1,2)) +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of user_security_questions_answers +-- ---------------------------- +INSERT INTO `user_security_questions_answers` VALUES (1, 1, 1, '您的第一个宠物的名字是什么?', 'cd6357efdd966de8c0cb2f876cc89ec74ce35f0968e11743987084bd42fb8944'); +INSERT INTO `user_security_questions_answers` VALUES (2, 1, 2, '您小时候最好的朋友叫什么名字?', '78675cc176081372c43abab3ea9fb70c74381eb02dc6e93fb6d44d161da6eeb3'); +INSERT INTO `user_security_questions_answers` VALUES (3, 2, 1, '您的小学名字是什么?', 'd64debd942d7dc26a851231583b1721f43ea936fa41932b6dad7556e5f8cd24a'); +INSERT INTO `user_security_questions_answers` VALUES (4, 2, 2, '您最喜欢的书是什么?', '92719fe0cf8cd51592af31ee8a5736d79f7273777fa3f7b70bfe993a4cd32180'); + +-- ---------------------------- +-- Table structure for users +-- ---------------------------- +DROP TABLE IF EXISTS `users`; +CREATE TABLE `users` ( + `UserID` int NOT NULL AUTO_INCREMENT, + `Username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `PhoneNumber` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `PasswordHash` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, + `JoinDate` timestamp NULL DEFAULT CURRENT_TIMESTAMP, + `UserType` enum('user','admin') CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'user', + `Birthday` date NULL DEFAULT NULL, + `Signature` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL, + PRIMARY KEY (`UserID`) USING BTREE, + UNIQUE INDEX `Username`(`Username` ASC) USING BTREE, + UNIQUE INDEX `PhoneNumber`(`PhoneNumber` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of users +-- ---------------------------- +INSERT INTO `users` VALUES (1, 'admin_user', '13800138000', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', '2024-12-23 04:46:27', 'admin', '1990-01-01', '我是管理员'); +INSERT INTO `users` VALUES (2, 'regular_user', '13800138001', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', '2024-12-23 04:46:27', 'user', '1995-07-15', '热爱编程的普通人'); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/测试说明.txt b/测试说明.txt new file mode 100644 index 0000000..79be844 --- /dev/null +++ b/测试说明.txt @@ -0,0 +1,42 @@ +管理员账号:13800138000 密码:123456 +普通用户账号:13800138001 密码:123456 + +-- 对于用户ID = 1 + 您的第一个宠物的名字是什么? 答:dog + 您小时候最好的朋友叫什么名字? 答:joe + +-- 对于用户ID = 2 + 您的小学名字是什么?答:school + 您最喜欢的书是什么?答:book + +Users ( + UserID INT AUTO_INCREMENT PRIMARY KEY, + Username VARCHAR(50) NOT NULL UNIQUE, -- 用户名,唯一 + PhoneNumber VARCHAR(15) NOT NULL UNIQUE, -- 国际格式的手机号码,唯一 + PasswordHash VARCHAR(256) NOT NULL, -- 哈希后的密码 + JoinDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + UserType ENUM('user', 'admin') NOT NULL DEFAULT 'user', -- 用户类型,默认为普通用户 + Birthday DATE, -- 生日 + Signature TEXT -- 个性签名 +); + +Posts ( + PostID INT AUTO_INCREMENT PRIMARY KEY, -- 文章ID,主键 + Title VARCHAR(255) NOT NULL, -- 文章标题 + Content TEXT NOT NULL, -- 文章正文 + PublishTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 发布时间,默认为当前时间戳 + AuthorID INT NOT NULL, -- 作者ID,外键关联到Users表 + ReviewStatus ENUM('approved', 'pending', 'rejected') NOT NULL DEFAULT 'pending', -- 审核状态,默认为待审核 + IsRecommended BOOLEAN NOT NULL DEFAULT FALSE, -- 是否推荐,默认为不推荐 + FOREIGN KEY (AuthorID) REFERENCES Users(UserID) +); + +User_Security_Questions_Answers ( + RecordID INT AUTO_INCREMENT PRIMARY KEY, + UserID INT NOT NULL, -- 用户ID,外键关联到Users表 + QuestionNumber TINYINT NOT NULL CHECK (QuestionNumber IN (1, 2)), -- 问题序号,只能是1或2 + QuestionContent TEXT NOT NULL, -- 安全问题的内容 + AnswerHash VARCHAR(256) NOT NULL, -- 哈希后的答案 + UNIQUE (UserID, QuestionNumber), -- 确保每个用户只能有两个不同的问题 + FOREIGN KEY (UserID) REFERENCES Users(UserID) +); \ No newline at end of file