DB 설정하기

  • 이 블로그의 글은 JAVA DB 엔지니어링 과정 수업을 위해 작성된 글입니다.
  • 이미지로 인해 글이 길어질 수 있습니다.

1. MySQL DB(스키마) 생성

 - MySQL Workbench를 실행하여 root 또는 DB 생성 권한이 있는 다른 아이디로 접속합니다.

 - 접속 과정은 다음을 참고하세요.


 - 접속 후 화면


 - Schemas 탭에서 좌측 SHEMAS 빈 여백에 우클릭 후 Create Schema를 클릭합니다.


 - Schema 이름 입력 후 Apply를 눌러 Schema(DB)를 생성합니다. 

 - 참고

      • DB 종류에 따라 Schema와 DB를 취급하는 방식이 다릅니다.

      • MySQL에서는 Schema와 DB가 같은 것으로 취급합니다. 


2. 테이블 생성하기

 - 회원 테이블, 게시판 테이블, 파일 테이블을 생성합니다.

 - 회원 테이블(memeber)의 속성은 다음과 같습니다.

    • 모든 속성은 필수 항목입니다.
    • 아이디(id) : 기본키로 문자열로 되어 있으며 최대 15까지로 설정했습니다.
    • 비밀번호(pw) : 문자열로 되어 있으며 암호화로 인해 최대 255자까지로 설정했습니다.
    • 성별(gender) : 문자 1자로 되어 있으며 남자는 'M', 여자는 'F'로 저장합니다.
    • 이메일(email) : 문자열로 되어 있습니다.
    • 권한(authority) : 문자열로 되어 있으며 최대 45자까지 설정 가능하고 기본값은 'USER' 입니다.

 - 회원 테이블의 DDL은 다음과 같습니다.

1
2
3
4
5
6
7
8
9
CREATE TABLE `member` (
  `id` varchar(15NOT NULL,
  `pw` varchar(255NOT NULL,
  `gender` varchar(1NOT NULL DEFAULT 'M',
  `email` varchar(45NOT NULL,
  `name` varchar(45NOT NULL DEFAULT ' ',
  `authority` varchar(45NOT NULL DEFAULT 'USER',
  PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
cs


 - 게시판 테이블(board)의 속성은 다음과 같습니다.

    • 번호(num) : 정수로 기본키이며 정보 추가 시 자동으로 증가합니다.
    • 제목(title) : 문자열로 되어 있으며 최대 255까지로 설정했습니다.
    • 내용(contents) : 긴 문자열로 되어 있습니다.(LONG TEXT)
    • 작성자(writer) : 문자열로 되어 있으며 최대 15까지로 설정되어 있습니다. 그리고 회원 테이블의 기본키인 아이디와 외래키로 연결되어 있습니다.
    • 등록일(registered) : DATETIME으로 되어 있으며 등록할 당시의 시간을 저장합니다.
    • 조회수(views) : 정수로 되어있습니다.
    • 게시글 등록 여부(valid) : 문자 1자로 되어 있으며 게시글이 게시된 상태면 'I', 삭제된 상태면 'D'로 저장합니다.
    • 게시판 테이블의 DDL은 다음과 같습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE `board` (
  `num` int(11NOT NULL AUTO_INCREMENT,
  `title` varchar(255NOT NULL,
  `contents` longtext NOT NULL,
  `writer` varchar(15NOT NULL,
  `registered` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `views` int(11NOT NULL DEFAULT '0',
  `valid` varchar(1NOT NULL DEFAULT 'I',
  PRIMARY KEY (`num`),
  KEY `writer_idx` (`writer`),
  CONSTRAINT `writer` FOREIGN KEY (`writer`REFERENCES `member` (`id`)
ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8;
cs

 - 파일 테이블(file)의 속성은 다음과 같습니다.

  • 번호(num) : 정수로 기본키이며 정보 추가 시 자동으로 증가합니다.
  • 게시글 번호(board) : 정수로 되어 있습니다. 그리고 게시판 테이블의 기본키인 게시판 번호와 외래키로 연결되어 있습니다.
  • 첨부파일명(name) : 문자열로 되어 있으며 최대 255자까지로 설정되어 있으며, NULL 값을 허용하지 않습니다.
  • 상태(state) : 문자로 되어 있으며 기본값이 'I'이고 삭제되면 'D'를 저장합니다.
  • 파일 테이블의 DDL은 다음과 같습니다.
1
2
3
4
5
6
7
8
9
CREATE TABLE `file` (
  `num` int(11NOT NULL AUTO_INCREMENT,
  `board` int(11NOT NULL,
  `name` varchar(255NOT NULL,
  `state` varchar(1NOT NULL DEFAULT 'I',
  PRIMARY KEY (`num`),
  KEY `board_idx` (`board`),
  CONSTRAINT `board` FOREIGN KEY (`board`REFERENCES `board` (`num`)
ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8;
cs

 - Schemas탭에서 테이블을 생성할 DB를 선택합니다.(spring)


 - 위의 회원테이블, 게시판 테이블, 파일 테이블에 대한 DDL를 이용하여 테이블을 생성합니다.

 - 빈 SQL FILE에 DDL을 복사하여 붙여넣고 실행합니다.

 - Schemas탭에서 새로고침 후 DB를 더블클릭한 후 Tables를 살펴보면 회원 테이블과 게시판 테이블이 생성된 것을 확인할 수 있습니다.

수고하셨습니다.

+ Recent posts