持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
📒博客首页:何名取 的个人主页 - 文章 - 掘金 (juejin.cn)
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
❤️期待一起交流!
🙏作者水平很有限,如果发现错误,求告知,多谢!
🌺有问题可私信交流!!!
题库中的获取题目问题
前言
前面几节围绕题库管理系统进行了数据库设计,已经给出了表的结构,这几张表分别是:
- PDF电子书信息表
- 题目信息表
- 选择题信息表
- 判断题信息表
- 简单题信息表
- 填空题信息表
其中PDF电子书信息表主要负责管理图书信息,作为书库页的数据来源。而剩下的五张表则是对题库内容的管理。
书库页已经初具雏形,接下来就开始进行题库部分。在最开始创建完图书后,会产生一个Book_id图书号,这不只是获取了关于这本图书的一些信息,同样也是创建了一个与这本图书对应的试题库。当我们选择书库中列出的图书打开,会同时将PDF电子书文档和题库都打开。
打开题库以后,会根据题目信息表中的Qst_Book图书号将同一个id下的题目都抽取出来,并根据Qst_Page页码展示在相应的PDF页,根据Qst_type题目类型去相应的xx题信息表中抽取题目内容和答案展示在右侧题目栏中。
对应关系
- 一对多。PDF电子书信息表中的一条记录对应题目信息表中的多个记录。一本书可以有多个题目。
- 一对一。题目信息表中的一条记录对应xx题信息表中的一条记录。一道题目只有一种类型。
PDF电子书信息表
| 列名 | 说明 | 数据类型 | 约束 |
|---|---|---|---|
| Book_id | 图书号 | int | not null primary key |
| Book_name | 书名 | text | not null |
| Book_pos | 存放位置 | text | not null |
题目信息表
| 列名 | 说明 | 数据类型 | 约束 |
|---|---|---|---|
| Qst_id | 题目号 | int | not null primary key |
| Qst_type | 类型 | char | not null |
| Qst_Book | 图书号 | int | not null foreign key |
| Qst_Page | 页码 | int | not null |
获取方法
在之前进行表设计时,在题库表中设置了外键。因此可以使用外键来控制各个表之间的联系。
这里的一段代码是组合两个表的:
select book.Book_id,question.Qst_id,question.Qst_Page
from book left join question
on book.Book_id = question.Qst_Book