회원을 위한 테이블을 생성한다.
CREATE TABLE `tbl_member` (
`member_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`login_id` VARCHAR(40) NOT NULL,
`login_name` VARCHAR(20) NOT NULL,
`login_pw` VARCHAR(256) NULL,
`insert_date` DATETIME NOT NULL DEFAULT NOW(),
PRIMARY KEY (`member_id`),
UNIQUE INDEX `login_id` (`login_id`)
)
COMMENT='회원'
COLLATE='utf8mb4_general_ci'
;
테이블 이름은 tbl_member이다. tbl_은 테이블이라고 명시하는 접두어다.
CREATE TABLE `tbl_member` (
member_id는 회원 한명 한명을 나타내는 행(row - 로우) 구분 용도의 일련번호 열(column - 컬럼)이다. 1부터 시작하며 자동으로 증가한다.
`member_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
login_id는 회원 ID이다. 40글자까지 입력 가능하다.
`login_id` VARCHAR(40) NOT NULL,
login_name은 회원명이다. 20글자까지 입력 가능하다.
`login_name` VARCHAR(20) NOT NULL,
login_pw는 회원 비밀번호이다. 암호화해서 저장하므로 길이를 여유있게 256글자로 설정한다.
`login_pw` VARCHAR(256) NULL,
insert_date는 데이터 입력 시간이다. DEFAULT NOW() 가 설정되어 있으므로 행이 입력(insert)될 때 데이터베이스에서 자동으로 현재 시간이 입력된다.
`insert_date` DATETIME NOT NULL DEFAULT NOW(),
tbl_member의 주 키는 member_id이다. PRIMARY KEY (member_id)로 테이블의 주 키(primary key) 를 설정한다.
PRIMARY KEY (`member_id`),
회원ID는 중복될 수 없다. UNIQUE INDEX login_id (login_id)로 login_id 컬럼의 유일함(unique)를 보장한다.
UNIQUE INDEX `login_id` (`login_id`)
글을 저장하기 위한 데이터베이스 테이블을 생성한다.
CREATE TABLE `tbl_post` (
`post_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`post_content` varchar(500) NOT NULL,
`member_id` bigint(20) unsigned NOT NULL,
`insert_date` datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (`post_id`),
KEY `FK_tbl_post_tbl_member` (`member_id`),
CONSTRAINT `FK_tbl_post_tbl_member` FOREIGN KEY (`member_id`) REFERENCES `tbl_member` (`member_id`)
)
COMMENT='글'
COLLATE='utf8mb4_general_ci'
;
테이블 이름은 tbl_post다.
CREATE TABLE `tbl_post` (
post_id는 글 하나 하나를 구분하는 일련번호다.
`post_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
post_content는 메모 내용을 뜻한다.
`post_content` varchar(500) NOT NULL,
member_id는 글을 쓴 회원 정보다.
`member_id` bigint(20) unsigned NOT NULL,
tbl_post 테이블의 member_id 컬럼의 데이터는 tbl_member 테이블의 member_id 컬럼의 정보를 참조해야 한다.
KEY `FK_tbl_post_tbl_member` (`member_id`),
CONSTRAINT `FK_tbl_post_tbl_member` FOREIGN KEY (`member_id`) REFERENCES `tbl_member` (`member_id`)
관계형 데이터베이스에서 다른 테이블의 정보를 참조하는 것을 외래키(Foreign Key)라고 부른다. 예시에서 tbl_post 테이블은 tbl_member 테이블을 참조하므로 외래키가 잡혀있다고 표현한다.