图书馆用户登录功能、检索图书信息、显示个人资料功能、显示当前借阅信息功能、显示借阅历史信息的sql语句,满足3nf 列出候选码
时间: 2023-07-30 18:12:40 浏览: 93
SQL图书借阅信息数据库系统
根据给出的需求,可以设计以下几张表:
1. 用户表(User):包含用户的基本信息和登录信息
- 用户ID(UserID):主键、自增、唯一
- 用户名(Username):唯一
- 密码(Password)
- 姓名(Name)
- 性别(Gender)
- 电话号码(Phone)
- 邮箱(Email)
- 注册时间(RegisterTime)
候选码:UserID、Username
2. 图书表(Book):包含图书的基本信息
- 图书ID(BookID):主键、自增、唯一
- 图书名称(BookName)
- 作者(Author)
- 出版社(Publisher)
- 出版日期(PublishDate)
- 分类号(CategoryNumber)
- 简介(Introduction)
候选码:BookID、BookName
3. 借阅记录表(BorrowRecord):记录用户借阅图书的情况
- 借阅记录ID(RecordID):主键、自增、唯一
- 用户ID(UserID):外键,关联用户表的UserID
- 图书ID(BookID):外键,关联图书表的BookID
- 借阅日期(BorrowDate)
- 归还日期(ReturnDate)
候选码:RecordID
4. 借阅历史记录表(BorrowHistory):记录用户借阅历史记录
- 借阅历史记录ID(HistoryID):主键、自增、唯一
- 用户ID(UserID):外键,关联用户表的UserID
- 图书ID(BookID):外键,关联图书表的BookID
- 借阅日期(BorrowDate)
- 归还日期(ReturnDate)
候选码:HistoryID
根据以上表结构,可以得到以下SQL语句:
1. 用户登录功能:
```
SELECT * FROM User WHERE Username = 'xxx' AND Password = 'xxx';
```
2. 检索图书信息:
```
SELECT * FROM Book WHERE BookName LIKE '%xxx%' OR Author LIKE '%xxx%' OR Publisher LIKE '%xxx%';
```
3. 显示个人资料功能:
```
SELECT * FROM User WHERE UserID = 'xxx';
```
4. 显示当前借阅信息功能:
```
SELECT User.Name, Book.BookName, BorrowRecord.BorrowDate, BorrowRecord.ReturnDate FROM BorrowRecord
INNER JOIN User ON User.UserID = BorrowRecord.UserID
INNER JOIN Book ON Book.BookID = BorrowRecord.BookID
WHERE BorrowRecord.ReturnDate IS NULL AND User.UserID = 'xxx';
```
5. 显示借阅历史信息功能:
```
SELECT User.Name, Book.BookName, BorrowHistory.BorrowDate, BorrowHistory.ReturnDate FROM BorrowHistory
INNER JOIN User ON User.UserID = BorrowHistory.UserID
INNER JOIN Book ON Book.BookID = BorrowHistory.BookID
WHERE User.UserID = 'xxx';
```
阅读全文