코딩항해기

[Team/붕어빵원정대(중중프)] 테이블 설계 본문

Project

[Team/붕어빵원정대(중중프)] 테이블 설계

miniBcake 2024. 8. 25. 18:33

 

팀명 : 붕어빵 원정대 (6인)

(Model 파트 2인)

 

담당 : Model 파트장 담당

 

Oracle

프로젝트 단계 : 중간 중간 프로젝트

(중간 프로젝트 전 연습단계)

 

1. 개념적 설계  > 2. 논리적 설계 > (물리적 설계 단계는 정규화 이후로) > 3. 정규화 1차 > 4. 정규화 2차 > 5. 정규화 3차

> 6. 피드백 > 7. 수정 > 8. 물리적 설계 > 9. 구현 

> 10. 추가 요청사항 반영 > 11. 물리적 설계 > 12. 구현 

 

(진행 단계 중 노란 밑줄 친 부분만 블로그 글로 기록 남겼다. 전체 기록은 팀 회의록에 파트 회의록에 기록을 남겼다.)

 

1. 개념적 설계

유저 붕어빵 가게 (중프에서 진행) 게시글 댓글
비밀번호 가게명 제목 댓글내용
이름 장소 내용 작성자
닉네임(중복없음) 메뉴 이미지 작성일시
포인트 영업일 작성자  
영업시간 작성일시  
장바구니 결제방법 댓글  
결제내역 기타 첨부파일  
프로필 이미지 가게 사진 공개여부  
이메일 별점 수정일시  
작성게시글 사장님 게시판종류(문의/일반)  
작성댓글   좋아요  
문의내역      
권한(일반/점주/admin)      
예약내역      
주소      
전화번호      

 

2. 논리적 설계

MEMBER 유저

PK 회원 고유번호 PRIMARY KEY  
  이메일 (ID) UNIQUE NOT NULL
  비밀번호   NOT NULL
  이름   NOT NULL
  닉네임 UNIQUE  
  프로필 이미지   DEFAULT 일반
  권한(일반/점주/admin)   DEFAULT 일반
  우편번호   NOT NULL
  주소   NOT NULL
  상세주소   NOT NULL
  전화번호 UNIQUE NOT NULL

 

BOARD 게시글

PK 게시물 번호 PRIMARY KEY  
  제목   NOT NULL
  내용   NOT NULL
  이미지    
FK 작성자 FOREIGN KEY NOT NULL
  작성일시   DEFAULT SYSDATE
  첨부파일    
  공개여부   DEFAULT 공개
  수정일시    
  게시판종류(문의/일반)   DEFAULT 일반
  좋아요   DEFAULT 0

 

REPLY 댓글

PK 댓글 고유번호 PRIMARY KEY  
  댓글내용   NOT NULL
FK 작성자 FOREIGN KEY NOT NULL
  작성일시   DEFAULT SYSDATE
FK 게시글 번호 FOREIGN KEY NOT NULL

 

 

3. 정규화 1차

MEMBER 유저

PK 회원 고유번호 PRIMARY KEY  
  이메일 (ID) UNIQUE NOT NULL
  비밀번호   NOT NULL
  이름   NOT NULL
  닉네임 UNIQUE  
  프로필 이미지   DEFAULT 일반
  권한(일반/점주/관리자)   DEFAULT 일반
  우편번호   NOT NULL
  주소   NOT NULL
  상세주소   NOT NULL
  전화번호 UNIQUE NOT NULL

 

BOARD 게시글

PK 게시물 번호 PRIMARY KEY  
  제목   NOT NULL
  내용   NOT NULL
FK 작성자 FOREIGN KEY NOT NULL
  작성일시   DEFAULT SYSDATE
  수정일시    
  공개여부   DEFAULT 공개
  좋아요   DEFAULT 0
FK 카테고리   NOT NULL

 

CATEGORY 게시판 종류 문의/일반

PK 종류 번호 PRIMARY KEY  
  카테고리 이름   NOT NULL

 

IMAGE 이미지

PK 이미지 번호 PRIMARY KEY  
  이미지 서버 경로   NOT NULL
FK 게시물 번호 FOREIGN KEY NOT NULL

 

FILE 첨부파일

PK 첨부파일 번호 PRIMARY KEY  
  첨부파일 서버 경로   NOT NULL
FK 게시물 번호 FOREIGN KEY NOT NULL

 

REPLY 댓글

PK 댓글 고유번호 PRIMARY KEY  
  댓글내용   NOT NULL
FK 작성자 FOREIGN KEY NOT NULL
  작성일시   DEFAULT SYSDATE
FK 게시글 번호 FOREIGN KEY NOT NULL

 

4. 정규화 2차

(복합식별자가 없어 진행하지 않음)

 

5. 정규화 3차

MEMBER 유저

PK 회원 고유번호 PRIMARY KEY  
  이메일 (ID) UNIQUE NOT NULL
  비밀번호   NOT NULL
  이름   NOT NULL
  닉네임 UNIQUE  
  프로필 이미지   DEFAULT 일반
  권한(일반/점주/관리자) CHECK DEFAULT 일반
  전화번호 UNIQUE NOT NULL
FK 우편번호   NOT NULL
  상세주소   NOT NULL

 

ADDRESS 주소

PK 우편번호 PRIMARY KEY  
  도로명주소   NOT NULL

 

BOARD 게시글

PK 게시물 번호 PRIMARY KEY  
  제목   NOT NULL
  내용   NOT NULL
FK 작성자 FOREIGN KEY NOT NULL
  작성일시   DEFAULT SYSDATE
  수정일시    
  공개여부   DEFAULT 공개
  좋아요   DEFAULT 0
FK 카테고리   NOT NULL

 

CATEGORY 게시판 종류 문의/일반

PK 종류 번호 PRIMARY KEY  
  카테고리 이름   NOT NULL

 

IMAGE 이미지

PK 이미지 번호 PRIMARY KEY  
  이미지 서버 경로   NOT NULL
FK 게시물 번호 FOREIGN KEY NOT NULL

 

FILE 첨부파일

PK 첨부파일 번호 PRIMARY KEY  
  첨부파일 서버 경로   NOT NULL
FK 게시물 번호 FOREIGN KEY NOT NULL

 

REPLY 댓글

PK 댓글 고유번호 PRIMARY KEY  
  댓글내용   NOT NULL
FK 작성자 FOREIGN KEY NOT NULL
  작성일시   DEFAULT SYSDATE
FK 게시글 번호 FOREIGN KEY NOT NULL

 

12. 구현

(구현 쿼리 대신 erd로 첨부했다)

주소는 나중에 별도 API 사용하게 될 예정이기도 하고 지금 단계에서 필요하지 않은 부분이라 삭제됐다.

첨부파일도 별도로 둘 필요가 없는 부분이라 기능 삭제로 테이블이 빠졌다.

좋아요의 기능확정이 되며(요청사항 반영) 별도의 테이블로 분리 됐다.

(제일 오른쪽은 view로 board정보를 반환할 때 여러가지 정보를 함께 반환하는 경우가 많아 쿼리 간략화 및 가독성을 위해 view를 추가했다)