Chapter 3: SQL
图书馆借书的业务逻辑 学校图书馆中存放了很多书籍。( “spring”、“summer”、“autumn”、“winter”) 假设它们各有2本,按如下方式编号。 spring用A打头,A001, A002 summer用B打头,B001, B002 autumn用C打头,C001,C002 winter用D打头,D001, D002 为了记录这些信息,我们在数据库中创建表名为book。
问题:
公共管理学院的Tom和管理学院的Peter使用借书卡到图书馆借书。 每张借书卡都有编号,记录了使用者的相关信息。 为了在数据库中存储借书卡的信息,我们创建借书卡的表Card。 Tom的卡编号为u20091000; Peter的卡编号为u20091001;
CREATE TABLE card (id char(10) NOT NULL, xuehao varchar(60), xingming varchar(50), xinbie char(1), xueyuan varchar(100), chushengriqi date , PRIMARY KEY ("id")) ; 1
Tom使用借书卡(u20091000)借走了 图书编号为A001的书, Peter使用借书卡( u20091001 )借走 了图书编号为D001的书。 为了记录这些借阅信息,我们创建表borrow_record。
问题: 哪些字段可以为空? 罚单编号可以为空吗?
问题: 这张表需要记录学生姓名、学号和图书名称、作者、出版社等信息吗?为什么?(冗余的概念) 借阅记录号 借书卡编号 图书编号 R000001 u20091000 A001 R000002 u20091001 D001 问题: 这张表需要记录学生姓名、学号和图书名称、作者、出版社等信息吗?为什么?(冗余的概念)
借阅记录号 借书卡编号 姓名 图书编号 R000001 u20091000 TOM A001 R000002 u20091001 PETER D001 R000003 B001 R000004 B002 R000005 C001 R000006 A002 /*select book.tushumingcheng from book,borrow_record where book.tushubianhao = borrow_record.tushubianhao and borrow_record.jieshuzhenghao = 'u20091000';*/
Time Flies…… 请问: 图书馆中书名为“Spring” 被哪些学生借走了呢? 图书馆中书名为“Spring” 还剩下几本? 借书证号为“”借了几本书?书名分别是什么? 书什么时候还?