CREATE DATABASE aws1125;
aws1125 이름으로 데이터베이스를 새로 생성한다.
총 6개의 테이블을 생성했다.
-- 회원 테이블
CREATE TABLE MEMBER
(
midx int NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 회원번호
memberid varchar(20) NOT NULL, -- 아이디
memberpw varchar(100) NOT NULL, -- 비밀번호
memberemail varchar(50) NOT NULL, -- 이메일
membername varchar(40) NOT NULL, -- 이름
memberbirth date NOT NULL, -- 생일
memberphone varchar(20) NOT NULL, -- 핸드폰 번호
membergender char(2) NULL, -- 성별
regdate DATETIME default now() NOT NULL, -- 가입일
delyn char DEFAULT 'N', -- 삭제여부
ip varchar(40) NULL,
grade varchar(10) DEFAULT 'user', -- 회원등급
filename varchar(500) -- 파일이름
);
멤버 테이블로 회원가입을 할 때 받아야하는 값들을 컬럼으로 지정해줬다.
midx는 자동으로 증가하도록 하고 pk 설정.
비밀번호는 암호화를 걸면 길이가 길어지기 때문에 varchar(100)으로 지정했다.
-- 자유게시판 테이블
CREATE TABLE BOARD
(
bidx int NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 글 번호
subject varchar(50) NOT NULL, -- 제목
contents text NOT NULL, -- 내용
writer varchar(50) NOT NULL, -- 작성자
recom int DEFAULT 0, -- 추천
viewcnt int DEFAULT 0, -- 조회수
delyn char DEFAULT 'N', -- 삭제여부
writeday datetime DEFAULT now(), -- 작성일
modifyday datetime NULL ON UPDATE CURRENT_TIMESTAMP, -- 수정날짜. 수정 시 자동 업데이트
ip varchar(40) NOT NULL,
notice char DEFAULT 'N', -- 공지사항 Y: 공지사항, N: 일반 게시글
midx int NOT NULL, -- 회원번호
filename varchar(500) -- 파일이름
);
-- 자유게시판 댓글 테이블
CREATE TABLE COMMENT
(
cidx int NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 댓글 번호
ccontents text NOT NULL, -- 댓글내용
cwriter varchar(50) NOT NULL, -- 댓글 작성자
cip varchar(40) NOT NULL, -- ip
writeday datetime DEFAULT now(), -- 작성일
delyn char DEFAULT 'N', -- 삭제여부
modifyday datetime NULL ON UPDATE CURRENT_TIMESTAMP, -- 댓글 수정날짜. 수정 시 자동 업데이트
bidx int NOT NULL, -- 게시물 번호
midx int NOT NULL, -- 회원번호
filename varchar(500) -- 파일이름
);
-- 빵집 추천,리뷰
CREATE TABLE bakery_review
(
review_id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 게시물 번호
bakery_name varchar(100) NOT NULL, -- 빵집이름(제목)
review_contents text NOT NULL, -- 리뷰내용
bakery_phone varchar(20), -- 전화번호
operating_hours varchar(30), -- 영업시간
parking_info varchar(100), -- 주차정보
menu_info varchar(300), -- 메뉴정보
latitude decimal(10,7) NOT NULL, -- 위도
longitude decimal(10,7) NOT NULL, -- 경도
area varchar(100) NOT NULL, -- 지역 카테고리
delyn char DEFAULT 'N', -- 삭제여부
filename varchar(500) NULL -- 파일이름
);
-- 찜 테이블
CREATE TABLE BOOKMARK
(
bookmark_id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 북마크 번호
bookmark_date datetime DEFAULT now(), -- 북마크한 날짜
midx int NOT NULL, -- 회원 번호
review_id int NOT NULL, -- 빵집추천 글 번호
filename varchar(500) -- 파일이름
);
-- 이달의 빵집 테이블
CREATE TABLE monthly_bakery
(
mbidx int NOT NULL AUTO_INCREMENT PRIMARY KEY, -- 글 번호
msubject varchar(50) NOT NULL, -- 제목
mcontents text NOT NULL, -- 글 내용
writeday datetime DEFAULT now(), -- 작성일
viewcnt int DEFAULT 0, -- 조회수
delyn char DEFAULT 'N', -- 삭제여부
filename varchar(500) -- 파일이름
);
-- 댓글을 회원 번호와 연결
alter TABLE comment
add CONSTRAINT cidx_midx_fk FOREIGN KEY(midx) REFERENCES MEMBER(midx);
-- 북마크를 회원 번호와 연결
alter TABLE bookmark
add CONSTRAINT bookmark_id_midx_fk FOREIGN KEY(midx) REFERENCES MEMBER(midx);
-- 자유게시판을 회원 번호와 연결
alter TABLE board
add CONSTRAINT bidx_midx_fk FOREIGN KEY(midx) REFERENCES MEMBER(midx);
-- 댓글을 자유게시판 게시물 번호와 연결
alter TABLE COMMENT
add CONSTRAINT cidx_bidx_fk FOREIGN KEY(bidx) REFERENCES BOARD(bidx);
-- 북마크를 빵집추천 게시물번호와 연결
alter TABLE BOOKMARK
add CONSTRAINT bookmark_id_review_id_fk FOREIGN KEY(review_id) REFERENCES bakery_review(review_id);
필요한 컬럼이 생기는 추후에 추가 하는걸로.