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

테이블 설계서

작성자 : 임성준

MEMBER_TB 회원 테이블

상단으로

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

DAILY_LOG_TB 일지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
LOG_SQ NUMBER 일지번호, 시퀀스 사용 PRIMARY KEY LOG_LNO_PK
LOG_TITLE 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 LOG_MNO_FK

INQUIRY_CATEGORY_TB 문의유형카테고리 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
INQ_CTG_CD VARCHAR2(20) 문의유형코드 PRIMARY KEY INQ_ICD_PK
INQ_CTG_NAME VARCHAR2(255) 문의유형명 NOT NULL

ADMIN_TB 관리자 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ADMIN_SQ NUMBER 관리자 번호, 시퀀스 사용 PRIMARY KEY ADMIN_ADNO_PK
ADMIN_EMAIL_ID VARCHAR2(100) 관리자 이메일 NOT NULL, UNIQUE ADMIN_EMAIL_UQ
ADMIN_PWD VARCHAR2(30) 관리자 비밀번호 NOT NULL
ADMIN_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
INQ_CTG_CD VARCHAR2(20) 담당문의유형 FOREIGN KEY (INQ_CTG_CD) REFERENCES INQUIRY_CATEGORY_TB (INQ_CTG_CD) ADMIN_INQTP_FK

CHAT_ROOM_TB 채팅방 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAT_ROOM_SQ NUMBER 채팅방번호, 시퀀스 사용 PRIMARY KEY CROOM_CRNO_PK
CK_CHAT_ST VARCHAR2(10) DEFAULT ACTIVE, ACTIVE : 활성화, INACTIVE: 비활성화 CHECK(CK_CHAT_ST IN ('ACTIVE', 'INACTIVE')), NOT NULL CROOM_STATE_CK
CHAT_ROOM_REG_DT DATE DEFAULT SYSDATE, 등록일 NOT NULL
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ), NOT NULL CROOM_MNO_FK
ADMIN_NO NUMBER 관리자 번호 FOREIGN KEY (ADMIN_NO) REFERENCES ADMIN_TB (ADMIN_SQ), NOT NULL CROOM_ADNO_FK
INQ_CTG_CD NUMBER 담당문의유형코드 FOREIGN KEY (INQ_CTG_CD) REFERENCES INQUIRY_CATEGORY_TB (INQ_CTG_CD), NOT NULL CROOM_INQTP_FK

CHAT_MESSAGE_TB 채팅 메시지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAT_MSG_SQ NUMBER 메시지번호, 시퀀스 사용 PRIMARY KEY CMSG_MSGNO_PK
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 CMSG_TYPE_CK
SENDER_EMAIL VARCHAR2(100) 메시지 보낸 사용자 이메일 NOT NULL
CHAT_ROOM_NO NUMBER 채팅방번호 FOREIGN KEY (CHAT_ROOM_NO) REFERENCES CHAT_ROOM_TB (CHAT_ROOM_SQ), NOT NULL CMSG_RNO_FK

COUPON_TB 쿠폰 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
COUPON_SQ NUMBER 쿠폰번호, 시퀀스 사용 PRIMARY KEY COUPON_NO_PK
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

CHALLENGE_TB 챌린지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAL_SQ NUMBER 챌린지번호 PRIMARY KEY CHAL_NO_PK
CHAL_NAME VARCHAR2(50) 챌린지명 NOT NULL, UNIQUE CHAL_NAME_UQ
CHAL_COND NUMBER 챌린지조건값 NOT NULL
CHAL_REG_DT DATE DEFAULT SYSDATE, 등록 날짜 NOT NULL
COUPON_NO NUMBER 쿠폰번호 FOREIGN KEY (COUPON_NO) REFERENCES COUPON_TB (COUPON_SQ), NOT NULL CHAL_COUPON_FK
ADMIN_NO NUMBER 관리자번호 FOREIGN KEY (ADMIN_NO) REFERENCES ADMIN_TB (ADMIN_SQ), NOT NULL CHAL_ADNO_FK

CHALLENGE_MEMBER_HISTORY_TB 챌린지 이용 내역 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAL_HX_SQ NUMBER 이용내역번호 PRIMARY KEY CHX_NO_PK
CHAL_HX_VAL NUMBER 회원 진행 상태값 NOT NULL
CHAL_HX_DT DATE 챌린지 시작일 NOT NULL
CHAL_NO NUMBER 챌린지 번호 FOREIGN KEY (CHAL_NO) REFERENCES CHALLENGE_TB (CHAL_SQ), NOT NULL CHX_CNO_FK
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ), NOT NULL CHX_MNO_FK

CHALLENGE_COMPLETED_TB 챌린지 완료 내역 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
CHAL_COMPLETED_SQ NUMBER 챌린지번호 PRIMARY KEY CCOM_CCSQ_PK
CK_COUPON_ST VARCHAR2(10) 쿠폰 상태 CHECK(CK_COUPON_ST IN ('UNUSED', 'USED')), NOT NULL CCOM_STATE_CK
CHAL_COMPLETED_DT DATE DEFAULT SYSDATE, 완료 날짜 NOT NULL
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_SQ), NOT NULL CCOM_MNO_FK
CHAL_NO NUMBER 챌린지번호 FOREIGN KEY (CHAL_NO) REFERENCES CHALLENGE_TB (CHAL_SQ), NOT NULL CCOM_CNO_FK

ACCOMMODATION_TYPE_TB 숙박업소 유형 테이블

상단으로

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

ACCOMMODATION_TB 숙박업소 테이블

상단으로

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

컬럼명 데이터타입 설명 제약조건 제약조건명
ACCOM_SQ NUMBER 숙박업소번호, 시퀀스 사용 PRIMARY KEY ACCOM_ANO_PK
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_TPNO_FK

ACCOMMODATION_IMAGE_TB 숙박업소 이미지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ACCOM_IMG_SQ NUMBER 숙박업소이미지번호, 시퀀스 사용 PRIMARY KEY ACCIMG_INO_PK
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 ACCIMG_ANO_FK

ROOM_TB 객실 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ROOM_SQ NUMBER 객실번호, 시퀀스 사용 PRIMARY KEY ROOM_RNO_PK
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_ANO_FK

ROOM_IMAGE_TB 객실 이미지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
ROOM_IMG_SQ NUMBER 객실이미지번호, 시퀀스 사용 PRIMARY KEY RIMG_INO_PK
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 RIMG_RNO_FK

CART_TB 장바구니 테이블

상단으로

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

RESERVATION_TB 예약 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
RES_CD VARCHAR2(10) 예약코드, 예약코드생성로직구현 PRIMARY KEY RES_CODE_PK
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')), NOT NULL RES_STATE_CK
RES_REG_DT DATE DEFAULT SYSDATE, 예약 생성일 NOT NULL
ROOM_NO NUMBER 객실번호 FOREIGN KEY (ROOM_NO) REFERENCES ROOM_TB (ROOM_SQ), NOT NULL RES_RNO_FK
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_TB (MEM_NO), NOT NULL RES_MNO_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

MEMBER_EXPERIENCE_TB 회원 경험치 내역 테이블

상단으로

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

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

MEMBER_LEVEL_TB 회원 레벨 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
MEM_NO NUMBER 회원번호 FOREIGN KEY (MEM_NO) REFERENCES MEMBER_EXPERIENCE_TB (MEM_NO), PRIMARY KEY MLV_MNO_FK, MLV_MNO_PK
MEM_LVL NUMBER DEFAULT 1, 회원레벨 NOT NULL
CK_MEM_EXP NUMBER DEFAULT 0, 누적회원경험치 CHECK(CK_MEM_EXP <= 99), NOT NULL MLV_EXP_CK

REVIEW_TB 이용 후기 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
REV_SQ NUMBER 이용후기번호, 시퀀스 사용 PRIMARY KEY REV_RNO_PK
REV_SCO NUMBER 평점 NOT NULL
CK_REV_ST VARCHAR2(10) DEFAULT 'PUBLIC', 공개여부설정 CHECK(REV_STATUS IN ('PUBLIC', 'PRIVATE')), NOT NULL REV_STATE_CK
REV_CONT 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_RCD_FK

REVIEW_IMAGE_TB 객실 이미지 테이블

상단으로

컬럼명 데이터타입 설명 제약조건 제약조건명
REV_IMG_SQ NUMBER 이용후기 이미지번호, 시퀀스 사용 PRIMARY KEY REVIMG_INO_PK
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 REVIMG_RNO_FK

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_ID_PK
LOC_SEO_CNT NUMBER DEFAULT 0, 검색횟수 NOT NULL

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
- 조식제공
- 무료주차
- 반려견동반
- 사우나/찜질방
- 객실내취사
- 픽업서비스
- 캠프파이어
- 개인사물함
- 객실내흡연
- 짐보관가능