본문 바로가기

SQL

도서 대출 테이블 생성: 도서 대출 정보를 저장하기 위한 테이블을 생성합니다.

반응형


도서 대출 정보를 저장하는 테이블은 도서관이나 학교, 기타 기관에서 자료를 관리하고 대출 상황을 추적하는 데 중요합니다. 이 테이블은 대출 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: 다른 테이블의 주 키를 참조하는 외래 키입니다.

반응형