E-book (10) 테이블 수정

이율곡·2023년 1월 30일
0

Project

목록 보기
12/15
post-thumbnail

서두

프로젝트를 진행하면서 이런저런 문제를 해결하고 있다. 그 중 하나가 테이블을 정리하는 것이다. 이전에는 이미지, 내용 등록을 따로 했는데 번거로움과 문제가 생겨서 도서를 등록할 때 한 번에 하기로 했다. 대신 관리는 따로 할 수 있게 설정했다.


도서 테이블

CREATE TABLE book (
	book_number CHAR(6) PRIMARY KEY NOT NULL,
	book_class CHAR(1) NOT NULL,
	book_name VARCHAR(100) NOT NULL,
	author_number INT NOT NULL,
	book_inf VARCHAR(256) NOT NULL,
	released CHAR(4) NOT NULL,
	created_at TIMESTAMP DEFAULT NOW(),
	updated_at TIMESTAMP DEFAULT NOW(),
	admin_number INT NOT NULL,
	FOREIGN KEY (book_class) REFERENCES book_class (original_number),
	FOREIGN KEY (author_number) REFERENCES author (author_number),
	FOREIGN KEY (admin_number) REFERENCES admin (admin_number)
);

가장 많은 양을 차지하는 도서 테이블이다. 책 번호와 분류 번호, 책 이름, 작가 번호, 책 소개, 출판년도가 있다. 그리고 책 분류와 작가번호를 외래키로 받았다.

도서 Plus 테이블

CREATE TABLE book_plus (
	book_number CHAR(6) PRIMARY KEY NOT NULL,
	hits INT DEFAULT 0 NOT NULL,
	recommended INT DEFAULT 0 NOT NULL,
	rental INT DEFAULT 0 NOT NULL,
	FOREIGN KEY (book_number) REFERENCES book (book_number)
);

도서 테이블이 너무 크다고 생각해서 만든 테이블이다. 여기는 조회수, 추천수, 대여수를 기록하려 한다. 기본적으로 0을 기본값으로 갖는다.

도서 이미지 테이블&내용 테이블

CREATE TABLE book_image (
	book_number CHAR(6) PRIMARY KEY NOT NULL,
	image_name VARCHAR(200) NOT NULL,
	image_path VARCHAR(200) NOT NULL,
	created_at TIMESTAMP DEFAULT NOW(),
	updated_at TIMESTAMP DEFAULT NOW(),
	admin_number INT NOT NULL,
	FOREIGN KEY (book_number) REFERENCES book (book_number),
	FOREIGN KEY (admin_number) REFERENCES admin (admin_number)
);

//

CREATE TABLE book_content (
	book_number CHAR(6) PRIMARY KEY NOT NULL,
	content_name VARCHAR(200) NOT NULL,
	content_path VARCHAR(200) NOT NULL,
	created_at TIMESTAMP DEFAULT NOW(),
	updated_at TIMESTAMP DEFAULT NOW(),
	admin_number INT NOT NULL,
	FOREIGN KEY (book_number) REFERENCES book (book_number),
	FOREIGN KEY (admin_number) REFERENCES admin (admin_number)
);

여기는 기존의 테이블과 다른 것이 없다. 다만 고유번호 대신에 책 번호를 기본키로 사용했다.


정리하기

이번에는 기존의 이미지 테이블과 내용 테이블을 지우고 도서 테이블을 만들면서 새롭게 바꿨다. 도서 등록도 마쳤지만, 테이블까지 설명하기에는 양이 많을 거 같아 따로 뺐다. 벌써 등록까지 전부 마쳐서 기쁘다. 3주차에 접어 들었는데 내가 생각하는 중간점검까지 아직 양이 많이 남아서 Velog까지 쓰면서 하려면 시간이 부족하다. 더 열심히 해야겠다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글