当前位置:   article > 正文

Educoder 数据库开发综合案例 - 图书管理系统设计_请在右侧编辑器的begin-end之间补充,具体任务如下: 使用 library_db 数据库创建图

请在右侧编辑器的begin-end之间补充,具体任务如下: 使用 library_db 数据库创建图

第1关:数据库表设计 - 图书表

任务描述

本关任务:创建图书管理数据库系统的图书表。

相关知识

数据库整体设计

一个图书管理系统,必然是在读者、图书和书架之间产生的关系,但是我们要怎么添加字段?字段间的约束又该怎么设计?表之间的关联又是要怎么处理?这些都是我们需要思考的问题。

图书管理系统的整体设计如下图所示:总共涉及到四张表:

  1. 图书表;

  2. 读者表;

  3. 书架表;

  4. 借阅表。

图书表

设计图书表是设计数据库的第一步,我们将图书的信息内容拟列出如下:

字段名称类型备注约束
bookIdint(11)书号主键,非空
bookNamevarchar(255)书名非空
publicationDatedatetime出版日期非空
publishervarchar(255)出版社非空
bookrackIdint(11)书架号非空
roomIdint(11)房间号非空

编程要求

请在右侧编辑器的Begin-End之间补充,具体任务如下:

  • 使用 library_db 数据库创建图书表,创建的表命名为 books。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

每次点击评测后台都会将数据库环境重置,数据库 library_db 会自动创建好。

预期输出:

 
  1. +-----------------+--------------+------+-----+---------+-------+
  2. | Field | Type | Null | Key | Default | Extra |
  3. +-----------------+--------------+------+-----+---------+-------+
  4. | bookId | int(11) | NO | PRI | NULL | |
  5. | bookName | varchar(255) | NO | | NULL | |
  6. | publicationDate | datetime | NO | | NULL | |
  7. | publisher | varchar(255) | NO | | NULL | |
  8. | bookrackId | int(11) | NO | | NULL | |
  9. | roomId | int(11) | NO | | NULL | |
  10. +-----------------+--------------+------+-----+---------+-------+

开始你的任务吧,祝你成功!

通关代码: 

  1. #请在此添加实现代码
  2. ########## Begin ##########
  3. #在library_db库中创建books表
  4. use library_db;
  5. CREATE TABLE `books` (
  6. `bookId` int(11) NOT NULL,
  7. `bookName` varchar(255) NOT NULL,
  8. `publicationDate` datetime NOT NULL,
  9. `publisher` varchar(255) NOT NULL,
  10. `bookrackId` int(11) NOT NULL,
  11. `roomId` int(11) NOT NULL,
  12. PRIMARY KEY (`bookId`)
  13. );
  14. ########## End ##########

第2关:数据库表设计 - 读者表 

任务描述

本关任务:创建图书管理系统的读者表。

相关知识

读者表

设计编写完图书表之后,我们就需要设计读者表了:

现将读者表的信息列出如下:

字段名称类型备注约束
borrowBookIdint(11)借书证号主键,非空
namevarchar(20)姓名非空
ageint(11)年龄非空
sexvarchar(2)性别非空
addressvarchar(255)家庭住址非空

编程要求

请在右侧编辑器的Begin-End之间补充,具体任务如下:

  • 使用 library_db 数据库创建图书表,创建的表命名为 reader。

测试说明

平台会对你编写的代码进行测试:

预期输出:

 
  1. +--------------+--------------+------+-----+---------+-------+
  2. | Field | Type | Null | Key | Default | Extra |
  3. +--------------+--------------+------+-----+---------+-------+
  4. | borrowBookId | int(11) | NO | PRI | NULL | |
  5. | name | varchar(20) | NO | | NULL | |
  6. | age | int(11) | NO | | NULL | |
  7. | sex | varchar(2) | NO | | NULL | |
  8. | address | varchar(255) | NO | | NULL | |
  9. +--------------+--------------+------+-----+---------+-------+

开始你的任务吧,祝你成功!

通关代码: 

  1. #请在此添加实现代码
  2. ########## Begin ##########
  3. #在library_db库中创建reader表
  4. use library_db;
  5. CREATE TABLE `reader` (
  6. `borrowBookId` int(11) NOT NULL,
  7. `name` varchar(20) NOT NULL,
  8. `age` int(11) NOT NULL,
  9. `sex` varchar(2) NOT NULL,
  10. `address` varchar(255) NOT NULL,
  11. PRIMARY KEY (`borrowBookId`)
  12. );
  13. ########## End ##########

第3关:数据库表设计 - 关联表

任务描述

本关任务:创建图书表和读者表的两个关联表。

相关知识

关联表

我们已经创建好了图书表和读者表,那么现在我们所缺少的就是他们之间的关联表了——书架表和借阅表:

  • 书架表
字段名称类型备注约束
bookrackIdint(11)书架号主键,外键,非空
roomIdint(11)房间号外键,非空
  • 借阅表
字段名称类型备注约束
borrowBookIdint(11)借书证号主键,外键,非空
bookIdint(11)书号外键,非空
borrowDatedatetime借阅日期非空
returnDatedatetime归还日期非空

编程要求

请在右侧编辑器的Begin-End之间使用 library_db 数据库创建书架表和借阅表,具体任务如下:

① 书架表命名为 bookrack ,注意其中外键要求如下:

  • 外键 bookrackId 的外键名称设置为 FK_bookrack_bookrackId,外键表为图书表(books);

  • 外键 roomId 的外键名称设置为 FK_bookrack_roomId,外键表为图书表(books)。

② 借阅表命名为 borrow ,注意其中外键要求如下:

  • 外键 borrowBookId 的外键名称设置为 FK_borrow_borrowBookId,外键表为读者表(reader);

  • 外键 bookId 的外键名称设置为 FK_borrow_bookId,外键表为图书表(books)。

注意外键涉及的表我们在前面二个章节中都创建了,无需再创建。

测试说明

平台会对你编写的代码进行测试,输出内容过长,请在测试集中查看。


开始你的任务吧,祝你成功!

通关代码: 

  1. #请在此添加实现代码
  2. ########## Begin ##########
  3. #在library_db库中创建bookrack表
  4. use library_db;
  5. CREATE TABLE `bookrack` (
  6. `bookrackId` int(11) NOT NULL,
  7. `roomId` int(11) NOT NULL,
  8. PRIMARY KEY (`bookrackId`) USING BTREE,
  9. INDEX `FK_bookrack_roomId`(`roomId`) USING BTREE,
  10. CONSTRAINT `FK_bookrack_bookrackId` FOREIGN KEY (`bookrackId`) REFERENCES `books` (`bookrackId`) ,
  11. CONSTRAINT `FK_bookrack_roomId` FOREIGN KEY (`roomId`) REFERENCES `books` (`roomId`)
  12. );
  13. #在library_db库中创建borrow表
  14. CREATE TABLE `borrow` (
  15. `borrowBookId` int(11) NOT NULL,
  16. `bookId` int(11) NOT NULL,
  17. `borrowDate` datetime NOT NULL,
  18. `returnDate` datetime NOT NULL,
  19. PRIMARY KEY (`borrowBookId`) USING BTREE,
  20. KEY `FK_borrow_borrowBookId` (`borrowBookId`),
  21. KEY `FK_borrow_bookId` (`bookId`),
  22. CONSTRAINT `FK_borrow_borrowBookId` FOREIGN KEY (`borrowBookId`) REFERENCES `reader` (`borrowBookId`),
  23. CONSTRAINT `FK_borrow_bookId` FOREIGN KEY (`bookId`) REFERENCES `books` (`bookId`)
  24. );
  25. ########## End ##########

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/393828
推荐阅读
相关标签
  

闽ICP备14008679号