BACKEND/Spring

게시판 만들기 2 - 테이블 만들기(DB)

죠으닝 2023. 10. 26. 12:25

MySQL사용-mini schema 생성

 

 

board_info 테이블 생성

 AUTO_INCREMENT

-- 보드정보 테이블(번호, 게시판 이름) 

create table board_info(
	info_idx int AUTO_INCREMENT,      -- 게시판 정보 번호 
	board_name varchar(500) not null, -- 게시판 이름 
	primary key(info_idx)
);

 

user테이블

-- 사용자 테이블
create table user(
	user_idx int AUTO_INCREMENT,
    name varchar(50) not null,
    user_id varchar(100) not null,
    user_pw varchar(100) not null,
    primary key(user_idx)
);

 

board테이블

 

-- 보드 테이블 
create table board(
	board_idx int AUTO_INCREMENT,
    title varchar(500) not null,
    content text not null,
    content_file varchar(500) not null,
    writer_idx int , -- user_idx 참조 (외래키)
    info_idx int, -- info_idx 참조 (외래키)
    regDate datetime,
	primary key(board_idx)
);

 

 

테이블 새성 후 설정에 들어가서 외래키 설정할거임

Foreign Keys-> name, table 설정  -> column 선택 -> user_idx선택

 

 

update나 delete 시 

참조하는 테이블에도 삭제나 업데이트를 할것인가?

cascade : 반영

현재 No Action.

 

예를 들어서 유저가 탈퇴를 했는데 

그 유저가 쓴 글은 삭제될것인가?

 

유저가 아이디를 업데이트 했을 경우 그 유저의 게시글의 아이디도 업데이트 할 것인가?

라는 선택지가 있음. 

 

 

 

cascade하면 자동으로 업데이트 됨 

 

 

 

 

Apply

 

 

이번에는 info_idx도 외래키 설정해줄거임

regDate 도 notnull, default 값 now() 수정

 

 

 

board_info 테이블에 값 입력하기

INSERT INTO board_info(board_name) 
VALUES('자유게시판'),
	('유머게시판'),
	('정치게시판'),
	('스포츠게시판');