프로젝트/게시판
[SpringBoot] 게시판 1. MariaDB 테이블 생성(게시글, 댓글)
qkzkdo
2023. 7. 28. 00:21
728x90
1. 게시글 테이블 생성
CREATE TABLE board(
no BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
read_count INT DEFAULT 0,
create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
- AUTO_INCREMENT : 데이터가 추가 될 때 마다 no값이 1씩 증가된다.
- DEFAULT CURRENT_TIMESTAMP : 데이터를 추가할 때만 현재 시간을 저장한다.
- DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP : 데이터를 추가하거나 수정할 때 모두 현재 시간을 저장한다.
CRUD + 페이징 + 검색 + 댓글 기능만 구현할 것이기 때문에 작성자는 넣지 않았다.
2. 댓글 테이블 생성
CREATE TABLE reply(
no BIGINT PRIMARY KEY AUTO_INCREMENT,
content TEXT NOT NULL,
create_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
board_no BIGINT NOT NULL,
CONSTRAINT reply_board_fk FOREIGN KEY(board_no) REFERENCES board(no) ON DELETE CASCADE
);
- ON DELETE CASCADE : 부모 테이블의 데이터가 삭제될 때 자식 테이블의 관련된 데이터도 함께 삭제된다.
- board테이블의 no(PK)컬럼을 외래키로 참조해서 board_no를 FK로 설정하였다.
*외래키(Foreign Key)란? 부모 테이블의 기본키(Primary Key)를 참조하는 컬럼
728x90