프로젝트/게시판

[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