5. 데이터베이스 준비하기
5.1. 책 관리 데이터베이스 생성
yse_spring_mvc 데이터베이스를 생성한다.
- heidiSQL에 접속한다.
- 쿼리 탭에서 아래의 쿼리를 실행한다.
-
CREATE DATABASE yse_spring_mvc;
yse_spring_mvc 데이터베이스를 위한 데이터베이스 유저 yse_spring_mvc_user를 생성한다.
CREATE USER 'yse_spring_mvc_user'@'%' IDENTIFIED BY '1234';
yse_spring_mvc_user 유저가 yse_spring_mvc 데이터베이스에 접근할 수 있도록 권한을 추가한다.
GRANT EXECUTE, SELECT, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES ON `yse_spring_mvc`.* TO 'yse_spring_mvc_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
5.2. 책관리 테이블 생성
책을 관리하기 위한 속성을 도출해보면 아래와 같다.
- 제목
- 분류
- 가격
이를 바탕으로 데이터베이스 테이블을 생성한다. heidisql에서 좌측 yse_spring_mvc 데이터베이스 선택 후 쿼리 탭에서 아래의 쿼리를 실행시키자.
CREATE TABLE `book` (
`book_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`title` VARCHAR(200) NOT NULL,
`category` VARCHAR(200) NOT NULL DEFAULT '',
`price` INT NULL,
`insert_date` DATETIME NOT NULL DEFAULT NOW(),
PRIMARY KEY (`book_id`)
)
COLLATE='utf8mb4_general_ci'
;
- book_id는 책의 고유 번호다. 자동으로 번호가 설정된다.
- title은 제목이다. 최대 200글자까지 저장 가능한 문자열이다.
- category는 책의 분류다. 본래 RDBMS의 정규화 규칙에 의하면 테이블을 따로 분리하는 것이 맞지만 예제의 단순성을 위해 단순 문자열로 저장한다.
- price는 책 가격이다.
- insert_date는 책 정보를 입력한 날짜다. 데이터가 입력되면 마리아디비의 NOW() 함수가 실행되면서 자동으로 입력된다.
완성된 테이블 스키마도 heidiSQL에서 확인할 수 있다.