【自制软件】PDF学习宝-开发日记16--题库实现一

339 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情


📒博客首页:何名取 的个人主页 - 文章 - 掘金 (juejin.cn)
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
❤️期待一起交流!
🙏作者水平很有限,如果发现错误,求告知,多谢!
🌺有问题可私信交流!!!


题库中的获取题目问题

前言

前面几节围绕题库管理系统进行了数据库设计,已经给出了表的结构,这几张表分别是:

  • PDF电子书信息表
  • 题目信息表
  • 选择题信息表
  • 判断题信息表
  • 简单题信息表
  • 填空题信息表

其中PDF电子书信息表主要负责管理图书信息,作为书库页的数据来源。而剩下的五张表则是对题库内容的管理。

书库页已经初具雏形,接下来就开始进行题库部分。在最开始创建完图书后,会产生一个Book_id图书号,这不只是获取了关于这本图书的一些信息,同样也是创建了一个与这本图书对应的试题库。当我们选择书库中列出的图书打开,会同时将PDF电子书文档和题库都打开。

打开题库以后,会根据题目信息表中的Qst_Book图书号将同一个id下的题目都抽取出来,并根据Qst_Page页码展示在相应的PDF页,根据Qst_type题目类型去相应的xx题信息表中抽取题目内容和答案展示在右侧题目栏中。

对应关系

  • 一对多。PDF电子书信息表中的一条记录对应题目信息表中的多个记录。一本书可以有多个题目。
  • 一对一。题目信息表中的一条记录对应xx题信息表中的一条记录。一道题目只有一种类型。

image.png

PDF电子书信息表
列名说明数据类型约束
Book_id图书号intnot null primary key
Book_name书名textnot null
Book_pos存放位置textnot null
题目信息表
列名说明数据类型约束
Qst_id题目号intnot null primary key
Qst_type类型charnot null
Qst_Book图书号intnot null foreign key
Qst_Page页码intnot null

获取方法

在之前进行表设计时,在题库表中设置了外键。因此可以使用外键来控制各个表之间的联系。

这里的一段代码是组合两个表的:

select book.Book_id,question.Qst_id,question.Qst_Page
from book left join question
on book.Book_id = question.Qst_Book

image.png