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 |