-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[#3] DB 설계 고정 데이터들 ENUM으로 변경 #28
The head ref may contain hidden characters: "chore/#3-DB_\uC124\uACC4"
Conversation
- category 관련 테이블 모두 room_category 테이블로 묶음 - facility_category 테이블은 facilitry 테이블의 category 컬럼으로 넣음 - 고정 데이터들은 자바 애플리케이션 단에서 ENUM으로 관리하기로 결정
저희가 ENUM으로 카테고리의 상하위 그룹도 관리하기로 했기 때문에
위 세개컬럼이 한개의 컬럼으로 구성되고 코드내부에서(상하위그룹)을 관리하는 방식으로 가야되는게 아닐까요?
|
말씀하신 것처럼 세 개의 컬럼을 하나의 컬럼으로 묶으면 DB에는 어떻게 저장될까요? |
Enum에서 해당 필드는 코드에서
이런식으로 들어가게되지않을까요? +) 위에 Enum구성은 하나의 예시이고 코드상 ENUM 구조 설계를 토의 후 정해야겠네요 |
DB에 3개의 데이터를 합쳐서 넣어버리면, 특정 카테고리나 특정 타입에 대해서 방을 검색하고 싶을 때 |
음.. 근데 위 방식대로 적용을 한다면 단순히 DB를 반정규화 한 것이고 varchar()타입으로 바로 관리를 해도 괜찮은 상황과 동일한 것으로 보입니다. |
코드로 ENUM 쪽에서 카테고리 구조를 잘 설정한다고 하여도, DB 를 조회하는 과정이나 설계방법에서의 정규화 측면에서도 안 좋은 방향이라고 생각이 듭니다. |
- category name 하나만 가져가기로 결정 - 해당 컬럼의 값 -> "부티크 호텔, 게스트 하우스, 저택, 아파트, ... "
Related Issues
Description
COMMON
deletedAt
컬럼 사용room_category_dateil__room_type
,room__room_facility
room_category_detail__room_type
테이블에선,room_category_detail_id
와room_type_id
를 한 쌍으로 유니크 제약을 걸었습니다.room__room_facilitiy
테이블에선,room_id
와facility_id
를 한 쌍으로 유니크 제약을 걸었습니다.AUTO_INCREMENT
를 통해 설정했습니다. 이렇게 설정할 경우, 기본에 row 2개에 대해서 PK를 걸어버리는 상황과 달리 중복 이슈가 발생할 수 있습니다. "room__room_facility
를 예로 들면, 방 하나에 대해서 동일한 편의시설이 저장되는 등.." 이러한 중복 이슈를 방지하기 위해 유니크 제약을 걸었습니다.[TABLE] host
host
Table을 따로 뺐습니다. [1:다 관계][TABLE] user
is_active
-> 활성화 여부를 판단gender
-> 성별[TABLE] room
(min/max)_number_of_nights
-> 최소 숙박 일수, 최대 숙박 일수room_cnt
-> 해당 방에 대한 개수check_in
,check_out
[TABLE] room_price
price
는 해당 월[ex)month=1이면 1월]에 대한 기본 가격이며,weekly_price
는 주간 할인 가격입니다.[TABLE] room_status
특정 방에 대한 상태값을 저장하는 테이블입니다.
[TABLE] room_photo
방에 대한 사진
order
-> 방에서 노출시키는 사진에 대한 우선순위[TABLE] room__faciltiy / facility
facility
category
컬럼을 통해 편의시설에 대한 카테고리를 설정합니다.room__faciltiy
[TABLE] room_category
�root_category
-> "회원님의 숙소에 가장 적합한 유형을 선택하세요"에서 나오는 값들을 저장하는 컬럼reaf_category
-> 첫 번째 숙소 유형에 나오는 값들을 저장하는 컬럼room_type
-> 두 번째 숙소 유형에 나오는 값들을 저장하는 컬럼변경 사항
main/java/resources에
schema.sql
파일 추가질문 사항
기타
(Optaionl) 어떻게 테스트하셨나요?