赞
踩
任务描述
本关任务:创建图书管理数据库系统的图书表。
相关知识
数据库整体设计
一个图书管理系统,必然是在读者、图书和书架之间产生的关系,但是我们要怎么添加字段?字段间的约束又该怎么设计?表之间的关联又是要怎么处理?这些都是我们需要思考的问题。
图书管理系统的整体设计如下图所示:总共涉及到四张表:
图书表;
读者表;
书架表;
借阅表。
图书表
设计图书表是设计数据库的第一步,我们将图书的信息内容拟列出如下:
字段名称 | 类型 | 备注 | 约束 |
---|---|---|---|
bookId | int(11) | 书号 | 主键,非空 |
bookName | varchar(255) | 书名 | 非空 |
publicationDate | datetime | 出版日期 | 非空 |
publisher | varchar(255) | 出版社 | 非空 |
bookrackId | int(11) | 书架号 | 非空 |
roomId | int(11) | 房间号 | 非空 |
编程要求
请在右侧编辑器的Begin-End
之间补充,具体任务如下:
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
每次点击评测后台都会将数据库环境重置,数据库 library_db 会自动创建好。
预期输出:
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| bookId | int(11) | NO | PRI | NULL | |
| bookName | varchar(255) | NO | | NULL | |
| publicationDate | datetime | NO | | NULL | |
| publisher | varchar(255) | NO | | NULL | |
| bookrackId | int(11) | NO | | NULL | |
| roomId | int(11) | NO | | NULL | |
+-----------------+--------------+------+-----+---------+-------+
开始你的任务吧,祝你成功!
- #请在此添加实现代码
- ########## Begin ##########
- #在library_db库中创建books表
- use library_db;
- CREATE TABLE `books` (
- `bookId` int(11) NOT NULL,
- `bookName` varchar(255) NOT NULL,
- `publicationDate` datetime NOT NULL,
- `publisher` varchar(255) NOT NULL,
- `bookrackId` int(11) NOT NULL,
- `roomId` int(11) NOT NULL,
- PRIMARY KEY (`bookId`)
- );
- ########## End ##########
任务描述
本关任务:创建图书管理系统的读者表。
相关知识
读者表
设计编写完图书表之后,我们就需要设计读者表了:
现将读者表的信息列出如下:
字段名称 | 类型 | 备注 | 约束 |
---|---|---|---|
borrowBookId | int(11) | 借书证号 | 主键,非空 |
name | varchar(20) | 姓名 | 非空 |
age | int(11) | 年龄 | 非空 |
sex | varchar(2) | 性别 | 非空 |
address | varchar(255) | 家庭住址 | 非空 |
编程要求
请在右侧编辑器的Begin-End
之间补充,具体任务如下:
测试说明
平台会对你编写的代码进行测试:
预期输出:
+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| borrowBookId | int(11) | NO | PRI | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | int(11) | NO | | NULL | |
| sex | varchar(2) | NO | | NULL | |
| address | varchar(255) | NO | | NULL | |
+--------------+--------------+------+-----+---------+-------+
开始你的任务吧,祝你成功!
- #请在此添加实现代码
- ########## Begin ##########
- #在library_db库中创建reader表
- use library_db;
- CREATE TABLE `reader` (
- `borrowBookId` int(11) NOT NULL,
- `name` varchar(20) NOT NULL,
- `age` int(11) NOT NULL,
- `sex` varchar(2) NOT NULL,
- `address` varchar(255) NOT NULL,
- PRIMARY KEY (`borrowBookId`)
- );
- ########## End ##########
任务描述
本关任务:创建图书表和读者表的两个关联表。
相关知识
关联表
我们已经创建好了图书表和读者表,那么现在我们所缺少的就是他们之间的关联表了——书架表和借阅表:
字段名称 | 类型 | 备注 | 约束 |
---|---|---|---|
bookrackId | int(11) | 书架号 | 主键,外键,非空 |
roomId | int(11) | 房间号 | 外键,非空 |
字段名称 | 类型 | 备注 | 约束 |
---|---|---|---|
borrowBookId | int(11) | 借书证号 | 主键,外键,非空 |
bookId | int(11) | 书号 | 外键,非空 |
borrowDate | datetime | 借阅日期 | 非空 |
returnDate | datetime | 归还日期 | 非空 |
编程要求
请在右侧编辑器的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)。
注意外键涉及的表我们在前面二个章节中都创建了,无需再创建。
测试说明
平台会对你编写的代码进行测试,输出内容过长,请在测试集中查看。
开始你的任务吧,祝你成功!
- #请在此添加实现代码
- ########## Begin ##########
- #在library_db库中创建bookrack表
- use library_db;
- CREATE TABLE `bookrack` (
- `bookrackId` int(11) NOT NULL,
- `roomId` int(11) NOT NULL,
- PRIMARY KEY (`bookrackId`) USING BTREE,
- INDEX `FK_bookrack_roomId`(`roomId`) USING BTREE,
- CONSTRAINT `FK_bookrack_bookrackId` FOREIGN KEY (`bookrackId`) REFERENCES `books` (`bookrackId`) ,
- CONSTRAINT `FK_bookrack_roomId` FOREIGN KEY (`roomId`) REFERENCES `books` (`roomId`)
- );
- #在library_db库中创建borrow表
- CREATE TABLE `borrow` (
- `borrowBookId` int(11) NOT NULL,
- `bookId` int(11) NOT NULL,
- `borrowDate` datetime NOT NULL,
- `returnDate` datetime NOT NULL,
- PRIMARY KEY (`borrowBookId`) USING BTREE,
- KEY `FK_borrow_borrowBookId` (`borrowBookId`),
- KEY `FK_borrow_bookId` (`bookId`),
- CONSTRAINT `FK_borrow_borrowBookId` FOREIGN KEY (`borrowBookId`) REFERENCES `reader` (`borrowBookId`),
- CONSTRAINT `FK_borrow_bookId` FOREIGN KEY (`bookId`) REFERENCES `books` (`bookId`)
- );
- ########## End ##########
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。