11. 테이블 설계서_V4 - TEAM-PROJECT-ACC/trip-at-five-client GitHub Wiki

테이블 설계서

작성자 : 임성준

MEMBER_TB 회원 테이블

상단으로

컬럼명 데이터타입 설명 제약조건
MEM_SQ NUMBER 회원번호, 시퀀스 사용 PRIMARY KEY
MEM_EMAIL_ID VARCHAR2(100) 회원이메일, 필수항목 NOT NULL, UNIQUE
MEM_PWD VARCHAR2(30) 회원비밀번호 NOT NULL
MEM_NICK VARCHAR2(50) 자동 생성 로직으로 초기값 설정 NOT NULL, UNIQUE
MEM_LVL NUMBER DEFAULT 0, 회원레벨 NOT NULL
CK_MEM_ST VARCHAR2(10) DEFAULT 'ACTIVE', 활성화-'ACTIVE', 비활성화-'INACTIVE' CHECK(CK_MEM_ST IN ('ACTIVE', 'INACTIVE')), NOT NULL
MEM_PHONE VARCHAR2(11) 회원전화번호 UNIQUE
MEM_ADDR VARCHAR2(50) 회원주소
MEM_REG_DT DATE DEFAULT SYSDATE, 가입날짜 NOT NULL
MEM_SOC_UID VARCHAR2(50) 사용자 식별 값(API에서 제공 UID)
CK_SOC_PLT VARCHAR2(10) DEFAULT 'NORMAL' CHECK(CK_SOC_PLT IN ('NORMAL', 'KAKAO', 'GOOGLE', 'NAVER'))
SOC_REF_TKN VARCHAR2(100) 리프레쉬 토큰 UNIQUE
UPDATED_DT DATE 정보수정 날짜
INACTIVE_DT DATE 비활성화 날짜

CHALLENGE_TB 챌린지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건
CHAL_SQ NUMBER 챌린지번호 PRIMARY KEY
CHAL_NAME VARCHAR2(50) 챌린지명 NOT NULL, UNIQUE
CHAL_COND VARCHAR2(50) 챌린지조건명 NOT NULL
CHAL_DT DATE DEFAULT SYSDATE, 등록 날짜 NOT NULL

CHALLENGE_COMPLETED_TB 챌린지 완료 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAL_COMPLETED_SQ NUMBER 챌린지번호 PRIMARY KEY
CHAL_COMPLETED_DT DATE DEFAULT SYSDATE, 완료 날짜 NOT NULL
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ), NOT NULL CHAL_COMPLETED_MEM_NO_FK
CHAL_NO NUMBER 챌린지번호 FOREIGN KEY (CHAL_NO) REFERENCES CHALLENGE_TB (CHAL_SQ), NOT NULL CHAL_COMPLETED_CHAL_NO_FK

MEMBER_EXPERIENCE_TB 회원 경험치 내역 테이블

상단으로

CONSTRAINT MEMBER_EXPERIENCE(MEM_EXP) PRIMARY KEY(MEM_SQ, RES_CODE) => 복합키, PRIMARY KEY (MEM_NO, RES_CD)

컬럼명 데이터타입 설명 제약조건 제약조건명
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ) MEM_EXP_MEM_NO_FK
RES_CD VARCHAR2(10) 예약코드 FOREIGN KEY (RES_CD) REFERENCES RESERVATION_TB MEM_EXP_RES_CD_FK
MEM_EXP_VAL NUMBER DEFAULT 0, 획득 경험치 NOT NULL
MEM_EXP_DT DATE DEFAULT SYSDATE, 획득 날짜 NOT NULL

CART_TB 장바구니 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CART_SQ NUMBER 장바구니번호, 시퀀스 사용 PRIMARY KEY
CART_REG_DT DATE DEFAULT SYSDATE, 장바구니등록날짜 NOT NULL
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ), NOT NULL CART_MEM_NO_FK
ROOM_NO NUMBER 객실번호 FOREIGN KEY (ROOM_NO) REFERENCES ROOM_TB (ROOM_SQ), NOT NULL CART_ROOM_NO_FK

COUPON_TB 쿠폰 테이블

상단으로

컬럼명 데이터타입 설명 제약조건
COUPON_SQ NUMBER 쿠폰번호, 시퀀스 사용 PRIMARY KEY
COUPON_NAME VARCHAR2(30) 쿠폰명 NOT NULL
COUPON_PRICE NUMBER DEFAULT 0, 쿠폰가격 NOT NULL
COUPON_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
1 / 1만원 금액권 / 10000
2 / 2만원 금액권 / 20000
3 / 3만원 금액권 / 30000
4 / 4만원 금액권 / 40000
5 / 5만원 금액권 / 50000

ISSUED_COUPON_TB 쿠폰발급내역 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ISSUED_COUPON_SQ NUMBER 쿠폰발급번호, 시퀀스 사용 PRIMARY KEY
CK_COUPON_ST VARCHAR2(10) DEFAULT 'UNUSED' 쿠폰 상태 CHECK(CK_COUPON_ST IN ('UNUSED', 'USED'))
ISSUED_COUPON_DT DATE DEFAULT SYSDATE, 쿠폰발급일 NOT NULL
MEM_NO NUMBER 회원번호 FOREIGN KEY MEM_NO REFERENCES MEMBER_TB (MEM_SQ), NOT NULL ISSUED_CP_MEM_NO_FK
COUPON_NO NUMBER 쿠폰번호 FOREIGN KEY COUPON_NO REFERENCES COUPON_TB (COUPON_SQ), NOT NULL ISSUED_CP_COUPON_NO_FK

ACCOMMODATION_TB 숙박업소 테이블

상단으로

시설정보의 값은 문자열로 들어간다. 예시) 사우나, 바베큐, ...

컬럼명 데이터타입 설명 제약조건 제약조건명
ACCOM_SQ NUMBER 숙박업소번호, 시퀀스 사용 PRIMARY KEY
ACCOM_NAME VARCHAR2(50) 숙박업소명 NOT NULL
ACCOM_DESC VARCHAR2(4000) 숙박업소 설명 NOT NULL
ACCOM_LAT NUMBER DEFAULT 0, 위도 NOT NULL
ACCOM_LON NUMBER DEFAULT 0, 경도 NOT NULL
ACCOM_ADDR VARCHAR2(255) 주소 NOT NULL
ACCOM_PHONE VARCHAR2(11) 전화번호 NOT NULL
ACCOM_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
PUB_FAC_INFO VARCHAR2(200) 공용편의시설정보
IN_ROOM_FAC_INFO VARCHAR2(200) 객실 내 시설 정보
ETC_FAC_INFO VARCHAR2(200) 기타시설정보
ACCOM_TYPE_NO NUMBER 숙소유형번호 FOREIGN KEY (ACCOM_TYPE_NO) REFERENCES ACCOMMODATION_TYPE_TB (ACCOM_TYPE_SQ), NOT NULL ACCOM_TYPE_NO_FK

ACCOMMODATION_IMAGE_TB 숙박업소 이미지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ACCOM_IMG_SQ NUMBER 숙박업소이미지번호, 시퀀스 사용 PRIMARY KEY
ACCOM_IMG_ORG_NAME VARCHAR2(500) 이미지 원본 이름 NOT NULL
ACCOM_IMG_PATH_NAME VARCHAR2(1000) DEFAULT 'assets/resources/upload/acc/', 이미지 경로 NOT NULL
ACCOM_IMG_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
ACCOM_NO NUMBER 숙박업소번호 FOREIGN KEY (ACCOM_NO) REFERENCES ACCOMMODATION_TB (ACCOM_SQ), NOT NULL ACCOM_IMG_NO_FK

ROOM_TB 객실 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ROOM_SQ NUMBER 객실번호, 시퀀스 사용 PRIMARY KEY
ROOM_NAME VARCHAR2(50) 객실명 NOT NULL
ROOM_PRICE NUMBER DEFAULT 0, 객실가격 NOT NULL
ROOM_CHK_IN VARCHAR2(10) 체크인 시간 NOT NULL
ROOM_CHK_OUT VARCHAR2(10) 체크아웃 시간 NOT NULL
ROOM_STD_PPL NUMBER DEFAULT 0, 기준인원 NOT NULL
ROOM_MAX_PPL NUMBER DEFAULT 0, 최대인원 NOT NULL
ROOM_CNT NUMBER DEFAULT 0, 객실 수 NOT NULL
ROOM_DESC VARCHAR(255) 객실설명 NOT NULL
ROOM_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
ACCOM_NO NUMBER 숙박업소번호 FOREIGN KEY (ACCOM_NO) REFERENCES ACCOMMODATION_TB (ACCOM_SQ), NOT NULL ROOM_ACCOM_NO_FK

ROOM_IMG_TB 객실 이미지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ROOM_IMG_SQ NUMBER 객실이미지번호, 시퀀스 사용 PRIMARY KEY
ROOM_IMG_ORG_NAME VARCHAR2(500) 이미지 원본 이름 NOT NULL
ROOM_IMG_PATH_NAME VARCHAR2(1000) DEFAULT 'assets/resources/upload/acc/', 이미지 경로 NOT NULL
ROOM_IMG_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
ROOM_NO NUMBER 객실번호 FOREIGN KEY (ROOM_NO) REFERENCES ROOM_TB (ROOM_SQ), NOT NULL ROOM_IMG_NO_FK

PUBLIC_FACILITIES_TB 공용 시설 테이블

상단으로

데이터 저장용 테이블

컬럼명 데이터타입 설명 제약조건
PUB_FAC_NAME VARCHAR2(30) 편의시설이름 NOT NULL
- 사우나
- 수영장
- 바베큐
- 레스토랑
- 피트니스
- 물놀이시설
- 공용샤워실
- 공용화장실
- 매점

IN_ROOM_FACILITIES_TB 객실 내 시설 테이블

상단으로

데이터 저장용 테이블

컬럼명 데이터타입 설명 제약조건
IN_ROOM_FAC_NAME VARCHAR2(30) 객실내시설이름 NOT NULL
- 스파/월풀
- 객실스파
- 미니바
- 무선인터넷
- 에어컨
- 욕실용품
- 샤워실
- 개인콘센트

ETC_FACILITIES_TB 기타 시설 테이블

상단으로

데이터 저장용 테이블

컬럼명 데이터타입 설명 제약조건
ETC_FAC_NAME VARCHAR2(30) 기타시설이름 NOT NULL
- 조식제공
- 무료주차
- 반려견동반
- 사우나/찜질방
- 객실내취사
- 픽업서비스
- 캠프파이어
- 개인사물함
- 객실내흡연
- 짐보관가능

ACCOMMODATION_TYPE_TB 숙박업소 유형 테이블

상단으로

컬럼명 데이터타입 설명 제약조건
ACCOM_TYPE_SQ NUMBER 유형번호, 시퀀스 사용 PRIMARY KEY
ACCOM_TYPE_NAME VARCHAR2(30) 객실유형이름 NOT NULL
- 모텔
- 호텔·리조트
- 펜션
- 홈&빌라
- 캠핑
- 게하·한옥

RESERVATION_TB 예약 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
RES_CD VARCHAR2(10) 예약코드, 예약코드생성로직구현 PRIMARY KEY
RES_EMAIL_ID VARCHAR2(100) 사용자이메일 NOT NULL
RES_NAME VARCHAR2(20) 예약자명 NOT NULL
RES_PHONE VARCHAR2(11) 예약자 전화번호 NOT NULL
CHECK_IN_DT DATE 체크인 날짜 NOT NULL
CHECK_OUT_DT DATE 체크아웃 날짜 NOT NULL
CK_RES_ST VARCHAR2(10) DEFAULT COMPLETED, 예약 상태 (예약완료, 처리중, 예약취소) CHECK(RES_ST IN ('COMPLETED', 'PROCESSING', 'CANCEL'))
RES_DT DATE DEFAULT SYSDATE, 예약 생성일 NOT NULL
ROOM_NO NUMBER 객실번호 FOREIGN KEY (ROOM_NO) REFERENCES ROOM_TB (ROOM_SQ), NOT NULL RES_ROOM_NO_FK
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_NO), NOT NULL RES_MEM_NO_FK

PAYMENT_TB 결제 테이블

추후 변경될 수 있음. 자세한 사항은 Boot Pay API 참조

컬럼명 데이터타입 설명 제약조건
PAY_NO NUMBER 결제번호 PRIMARY KEY
RECEIPT_ID VARCHAR(255) 영수증ID NOT NULL
PAY_PRICE NUMBER 결제가격 NOT NULL
PAY_METHOD VARCHAR(100) 결제 수단 NOT NULL
PAY_ST NUMBER 결제 상태 NOT NULL
PAY_DT DATE DEFAULT SYSDATE, 결제일 NOT NULL
PAY_REQ_DT DATE 결제 요청 시간 NOT NULL
PAY_ST_DT DATE 결제 상태 변경시간 NOT NULL
RES_CD VARCHAR2(10) 예약코드 FOREIGN KEY RES_CD REFERENCES RESERVATION_TB, NOT NULL

LOCATION_TB 지역 테이블

상단으로

지역은 시 단위, 지역번호는 공공데이터 활용해서 넣게 되면 데이터 타입 변경될 수 있다

컬럼명 데이터타입 설명 제약조건
LOC_ID NUMBER 지역번호 PRIMARY KEY
LOC_NAME VARCHAR(10) 지역명 NOT NULL

LOCATION_SEARCH_TB 지역 검색 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
LOC_ID NUMBER 지역번호 FOREIGN KEY (LOC_ID) REFERENCES LOCATION_TB (LOC_ID), PRIMARY KEY LOC_SEO_ID_FK
LOC_SEO_CNT NUMBER DEFAULT 0, 검색횟수 NOT NULL

REVIEW_TB 이용 후기 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
REV_SQ NUMBER 이용후기번호, 시퀀스 사용 PRIMARY KEY
REV_SCO NUMBER 별점 NOT NULL
CK_REV_ST VARCHAR2(10) DEFAULT 'PUBLIC', 공개여부설정 CHECK(REV_STATUS IN ('PUBLIC', 'PRIVATE')), NOT NULL
REV_TIT VARCHAR2(255) 후기 내용
REV_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
RES_CD VARCHAR2(10) 예약코드 FOREIGN KEY (RES_CD) REFERENCES RESERVATION_TB (RES_CD), NOT NULL REV_RES_CD_FK

REVIEW_IMG_TB 이용 후기 이미지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
REV_IMG_SQ NUMBER 이용후기 이미지번호, 시퀀스 사용 PRIMARY KEY
REV_IMG_ORG_NAME VARCHAR2(500) 이미지 원본 이름 NOT NULL
REV_IMG_PATH_NAME VARCHAR2(1000) DEFAULT 'assets/resources/upload/review/', 이미지 경로 NOT NULL
REV_IMG_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
REV_NO NUMBER 이용후기 번호 FOREIGN KEY (REV_NO) REFERENCES REVIEW_TB (REV_SQ), NOT NULL REV_IMG_NO_FK

DAILY_LOG_TB 일지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
LOG_SQ NUMBER 일지번호, 시퀀스 사용 PRIMARY KEY
LOG_TIT VARCHAR2(50) 일지제목 NOT NULL
LOG_CONT VARCHAR2(255) 일지내용 NOT NULL
LOG_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ), NOT NULL DAILY_MEM_NO_FK

ADMIN_TB 관리자 테이블

상단으로

컬럼명 데이터타입 설명 제약조건
ADMIN_SQ NUMBER 관리자 번호, 시퀀스 사용 PRIMARY KEY
ADMIN_EMAIL_ID VARCHAR2(100) 관리자 이메일 NOT NULL, UNIQUE
ADMIN_PWD VARCHAR2(30) 관리자 비밀번호 NOT NULL
ADMIN_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL

CHAT_ROOM_TB 채팅방 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAT_ROOM_SQ NUMBER 채팅방번호, 시퀀스 사용 PRIMARY KEY
CK_CHAT_CTG VARCHAR2(20) DEFAULT ETC, 문의 카테고리 CHECK (CK_CHAT_CTG IN ('RESERVE', 'ETC')), NOT NULL
CK_CHAT_ST VARCHAR2(10) DEFAULT ACTIVE, ACTIVE : 활성화, INACTIVE: 비활성화 CHECK(CK_CHAT_ST IN ('ACTIVE', 'INACTIVE')), NOT NULL
CHAT_ROOM_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ), NOT NULL CHAT_ROOM_MEM_NO_FK
ADMIN_NO NUMBER 관리자 번호 FOREIGN KEY (ADMIN_NO) REFERENCES ADMIN_TB (ADMIN_SQ), NOT NULL CHAT_ROOM_AD_NO_FK

CHAT_MESSAGE_TB 채팅 메시지 테이블

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAT_MSG_SQ NUMBER 메시지번호, 시퀀스 사용 PRIMARY KEY
CHAT_MSG_CONT VARCHAR2(4000) 채팅메시지 NOT NULL
SEND_DT DATE DEFAULT SYSDATE, 보낸 날짜 NOT NULL
CK_SENDER_TYPE VARCHAR2(10) MEMBER : 회원, ADMIN : 관리자, NON-M : 비회원 CHECK (CK_CHAT_CTG IN ('MEMBER', 'ADMIN', 'NON-M')), NOT NULL
SENDER_EMAIL VARCHAR2(100) 메시지 보낸 사용자 이메일 NOT NULL
CHAT_ROOM_NO NUMBER 채팅방번호 FOREIGN KEY (CHAT_ROOM_NO) REFERENCES CHAT_ROOM_TB (CHAT_ROOM_SQ), NOT NULL CHAT_MSG_ROOM_NO_FK