개인프로젝트- 데이터베이스 설계

·2024년 11월 28일

개인프로젝트

목록 보기
6/11

데이터베이스 생성


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);

필요한 컬럼이 생기는 추후에 추가 하는걸로.

0개의 댓글