도서 대출 정보를 저장하는 테이블은 도서관이나 학교, 기타 기관에서 자료를 관리하고 대출 상황을 추적하는 데 중요합니다. 이 테이블은 대출 ID, 도서 ID, 사용자 ID, 대출 날짜, 반납 날짜, 현재 상태 등의 정보를 포함할 수 있습니다. 다음은 도서 대출 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 도서 대출 테이블 생성
CREATE TABLE book_loans (
loan_id INT AUTO_INCREMENT PRIMARY KEY,
book_id INT,
user_id INT,
loan_date DATE,
due_date DATE,
return_date DATE,
status VARCHAR(50),
FOREIGN KEY (book_id) REFERENCES books(book_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 대출 ID, 도서 ID, 사용자 ID, 대출 날짜, 반납 예정일, 실제 반납일, 대출 상태를 저장합니다.
2. 도서 정보 테이블 생성
CREATE TABLE books (
book_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
author VARCHAR(100),
isbn VARCHAR(20),
published_date DATE,
genre VARCHAR(50)
);
설명: 도서의 제목, 저자, ISBN, 출판일, 장르 등을 저장합니다.
3. 사용자 정보 테이블 생성
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
membership_date DATE,
email VARCHAR(100)
);
설명: 사용자의 이름, 회원 가입일, 이메일 등을 저장합니다.
4. 도서 예약 테이블 생성
CREATE TABLE book_reservations (
reservation_id INT AUTO_INCREMENT PRIMARY KEY,
book_id INT,
user_id INT,
reservation_date DATE,
status VARCHAR(50),
FOREIGN KEY (book_id) REFERENCES books(book_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 도서의 예약 상태, 예약 날짜 등을 기록합니다.
5. 도서 반납 기록 테이블 생성
CREATE TABLE return_records (
record_id INT AUTO_INCREMENT PRIMARY KEY,
loan_id INT,
return_date DATE,
condition VARCHAR(50),
FOREIGN KEY (loan_id) REFERENCES book_loans(loan_id)
);
설명: 반납된 도서의 상태와 반납 날짜를 기록합니다.
6. 도서 손상 기록 테이블 생성
CREATE TABLE book_damages (
damage_id INT AUTO_INCREMENT PRIMARY KEY,
book_id INT,
report_date DATE,
description TEXT,
reported_by INT,
FOREIGN KEY (book_id) REFERENCES books(book_id),
FOREIGN KEY (reported_by) REFERENCES users(user_id)
);
설명: 도서의 손상 상태, 보고 날짜, 손상 설명, 보고자를 기록합니다.
7. 대출 이력 테이블 생성
CREATE TABLE loan_history (
history_id INT AUTO_INCREMENT PRIMARY KEY,
loan_id INT,
user_id INT,
book_id INT,
loan_date DATE,
return_date DATE,
FOREIGN KEY (loan_id) REFERENCES book_loans(loan_id),
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (book_id) REFERENCES books(book_id)
);
설명: 대출된 도서의 전체 이력을 기록합니다.
8. 도서 분류 테이블 생성
CREATE TABLE book_categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
book_id INT,
category_name VARCHAR(100),
FOREIGN KEY (book_id) REFERENCES books(book_id)
);
설명: 도서의 분류를 저장합니다.
9. 도서 위치 정보 테이블 생성
CREATE TABLE book_locations (
location_id INT AUTO_INCREMENT PRIMARY KEY,
book_id INT,
shelf_location VARCHAR(100),
FOREIGN KEY (book_id) REFERENCES books(book_id)
);
설명: 각 도서의 위치 정보를 저장합니다.
10. 대출 제한 기록 테이블 생성
CREATE TABLE loan_restrictions (
restriction_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
restriction_reason TEXT,
start_date DATE,
end_date DATE,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 특정 사용자에 대한 대출 제한 사유와 기간을 기록합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, DATE, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
포럼 게시글 테이블 생성: 포럼 게시글 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
---|---|
쿠폰 테이블 생성: 할인 쿠폰 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
학생 성적 테이블 생성: 학생 성적 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
고객 지원 티켓 테이블 생성: 고객 지원 티켓 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.01 |
일정 테이블 생성: 업무 일정 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |