1. 3个表的分析(表名里不要加“t_”,会出现问题)
主表:t_qxk
这是试卷表
主表:t_ques_xk
这是题目表
子表:t_quescxk
这是试卷和题目的关系表,即同时是试卷和题目表的子表。
因为一张试卷可以对应多个题目,一个题目也可以出现在多张试卷中,是多对多的关系。
2. sql语句
特别提示:如果表名是t_qxk这种形式,会出现编辑页面的添加按钮点击后没有反应、控制台报错的问题,可能是若依的bug。把表名换成qxk,去掉“t_”,即可解决这个问题。
sql语句:
-- ----------------------------
-- Table structure for qxk
-- ----------------------------
DROP TABLE IF EXISTS `qxk`;
CREATE TABLE `qxk` (
`xk_id` int NOT NULL AUTO_INCREMENT COMMENT '选科主题ID',
`name` varchar(255) UNIQUE NOT NULL COMMENT '选科主题的题目',
`shi` double NOT NULL COMMENT '选科主题的做题时间',
PRIMARY KEY (`xk_id`)
) ENGINE = InnoDB CHARSET=utf8mb4;
-- ----------------------------
-- Records of qxk
-- ----------------------------
INSERT INTO `qxk` VALUES (1, '高考6选3-测试1', 10);
INSERT INTO `qxk` VALUES (2, '高考6选3-测试2', 10);
INSERT INTO `qxk` VALUES (3, '高考6选3-测试3', 10);
INSERT INTO `qxk` VALUES (4, '高考6选3-测试4', 10);
-- ----------------------------
-- Table structure for ques_xk
-- ----------------------------
CREATE TABLE `ques_xk` (
`qxkItem_id` INT NOT NULL AUTO_INCREMENT COMMENT 'Id',
`name` VARCHAR(255) NOT NULL COMMENT '题目名称',
`coursesel` VARCHAR(255) NOT NULL COMMENT '科目',
`option1` VARCHAR(255) NOT NULL COMMENT '选项1',
`score1` INT NOT NULL COMMENT '分值1',
`option2` VARCHAR(255) NOT NULL COMMENT '选项2',
`score2` INT NOT NULL COMMENT '分值2',
`option3` VARCHAR(255) NOT NULL COMMENT '选项3',
`score3` INT NOT NULL COMMENT '分值3',
`option4` VARCHAR(255) NOT NULL COMMENT '选项4',
`score4` INT NOT NULL COMMENT '分值4',
`option5` VARCHAR(255) NOT NULL COMMENT '选项5',
`score5` INT NOT NULL COMMENT '分值5',
PRIMARY KEY (`qxkItem_id`)
) ENGINE=INNODB CHARSET=utf8mb4;
INSERT INTO `ques_xk` VALUES (1, '我乐于用物理知识解释生活中的一些现象', '物理', '非常符合', 100, '比较符合', 90,'一般符合', 80,'比较不符合',50, '非常不符合', 0);
INSERT INTO `ques_xk` VALUES (2, '化学课具有很强的趣味性和实用性', '化学', '非常符合', 100, '比较符合', 90,'一般符合', 80,'比较不符合',50, '非常不符合', 0);
INSERT INTO `ques_xk` VALUES (3, '我常看时政新闻', '政治', '非常符合', 100, '比较符合', 90,'一般符合', 80,'比较不符合',50, '非常不符合', 0);
-- ----------------------------
-- Table structure for quescxk
-- ----------------------------
DROP TABLE IF EXISTS `quescxk`;
CREATE TABLE `quescxk` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '关系Id',
`xk_id` int NOT NULL COMMENT '选科主题Id',
`qxkItem_id` int NOT NULL COMMENT '选科题目Id',
PRIMARY KEY (`id`) USING BTREE,
FOREIGN KEY (xk_id) REFERENCES qxk(xk_id),
FOREIGN KEY (qxkItem_id) REFERENCES ques_xk(qxkItem_id)
) ENGINE = InnoDB CHARSET=utf8mb4;
-- ----------------------------
-- Records of quescxk
-- ----------------------------
INSERT INTO `quescxk` VALUES (1, 1, 1);
INSERT INTO `quescxk` VALUES (2, 1, 2);
INSERT INTO `quescxk` VALUES (3, 2, 3);
INSERT INTO `quescxk` VALUES (4, 3, 2);
INSERT INTO `quescxk` VALUES (5, 4, 3);
3.创建上级菜单
4.导入这3个表
5.编辑这3个表
主表:qxk:
主表:ques_xk:
子表:quescxk:
6.生成两个主表的代码
首先生成 主表qxk的代码
参考教程:若依-生成主子表-CSDN博客 导入代码
可以看到页面能够正常显示。
另一个主表:ques_xk也和上面一样导入代码
(idea在复制时如有提示:overwrite,就点overwrite就行,因为2个主表的代码里都带着一部分子表的代码(比如实体类),两份代码里有同名的文件,所以会提示overwrite)
这就完成了这两个主表的页面生成的工作。