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
'프로젝트 > 게시판' 카테고리의 다른 글
[SpringBoot] 게시판 6. 게시글 입력 기능 구현 (0) | 2023.08.03 |
---|---|
[SpringBoot] 게시판 5. 게시글 상세보기 페이지 구현 (0) | 2023.08.03 |
[SpringBoot] 게시판 4. 게시글 조회 기능 +페이징 처리 - 비동기 구현 (0) | 2023.08.02 |
[SpringBoot] 게시판 3. 게시글 입력 테스트 코드 작성 (0) | 2023.08.01 |
[SpringBoot] 게시판 2. Spring Starter Project 프로젝트 생성, 데이터베이스 설정(MariaDB, MyBatis) (0) | 2023.07.30 |