-
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 설계 Version_1.0 #26
The head ref may contain hidden characters: "chore/#3-DB_\uC124\uACC4"
Conversation
39df288
to
69149b6
Compare
Common 5.관련 질문입니다.다대다 테이블에서 유니크 제약을 걸었습니다.다대다 테이블에서 위 설명과 같이 유니크를 걸면 값이 못들어 가지 않을까 싶습니다.
room_category 관련 테이블들 변경 제안입니다.
room_price 테이블 컬럼 이름 변경 제안입니다.
[변경전] room_facility 관련 테이블들 이름 변경 제안입니다.
|
값이 못 들어가게 하기 위해 유니크 제약을 걸었습니다. 유니크 제약은 각각이 아니라 복합으로 걸었습니다.
반정규화를 고려하진 않았습니다.
room_count 컬럼은 카테고리에 있으면 안되는 컬럼입니다. room 테이블에 있어야 하는 컬럼입니다.
좋은 것 같습니다. 변경하는 이름이 명시적으로 어떤 뜻인지 와닿는 것 같습니다.
음.. 저는 일단 네이밍을 더 중요시하게 생각합니다. |
#26 (comment)
room_category_id - 1차 카테고리(회원님의 숙소 카테고리에 가장적합한 것을 고르세요)
위에 기능을 봤을때 2-5개/5-10개/10개-100개 정해진 항목들 중에 사용자가 선택하게 하는 것으로 이해했는데 잘못된 해석일까요?
#26 (comment)
#26 (comment) |
넵 room에서 카테고리 데이터를 가져올 수 있습니다.
네, 맞습니다. 사용자가 선택하는 데이터가 맞습니다. a. |
넵 room_category쪽 테이블은 모두 admin이 등록하는 데이터입니다 . room_count도 일대다의 관계를 가지기 때문에 따로 빼야되지 않을까 생각합니다.
|
FK에서 nullable로 두면 입력되는 양식에서 아예 빠지게 할 수 있으니 강제성은 없앨 수 있다고 하더라도, 문제가 생깁니다. 제안주신 ERD 설계의 흐름을 제가 이해한대로 적어보겠습니다.
추가적으로, "room_count도 일대다의 관계를 가지기 때문에 따로 빼야되지 않을까 생각합니다."의 의도가 궁금합니다. |
Slack 통해서 나온 결정사항들 남깁니다.
|
진하게 체크한 것으로 컬럼네임 가시는거 어떤가요? room_category -> room_root_category(or)room_parent_category |
오 좋습니다. 제가 맘에 드는 이름과 동일하게 생각하시는군요. 굳굳입니당 |
- 테이블 이름 변경 - room_category -> room_root_category - room_category_detail -> room_leaf_category - room_category_detail__room_type -> room_category - room_leaf_category에 컬럼 추가 `is_several_rooms` - 해당 카테고리를 선택한 방은 방의 개수를 설정해야 한다/안한다 여부 - room_price 테이블의 `weekly_price` 컬럼 이름 변경 -> `weekly_discount_price`
머지하겠습니다! |
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__room_faciltiy / room_facility / room_faciltiy_category
room_facility_category
room_faciltiry
room__room_facility
[TABLE] room_category / room_category_detail / room_type / room_category_detail__room_type
room_category
-> "회원님의 숙소에 가장 적합한 유형을 선택하세요"에서 나오는 값들을 저장하는 테이블room_category_detail
-> 첫 번째 숙소 유형에 나오는 값들을 저장하는 테이블room_category
와 일:다 테이블여야 하는 이유 -> 가장 적합한 유형[room_category
의 값]에 따라 나오는 값들이 다르기 때문room_type
-> 두 번째 숙소 유형에 나오는 값들을 저장하는 테이블room_category_detail__room_type
-> 첫 번째 숙소 유형과 두 번째 숙소 유형을 연결짓는 테이블room_type
에서 생성하고, 이를room_category_detail
이 가져다 사용하는 방식으로 진행합니다.변경 사항
main/java/resources에
schema.sql
파일 추가질문 사항
ENUM
타입은 여러가지 이슈 때문에 사용하지 말아야 한다고 들었습니다.ENUM
타입일 경우, 완전하게 사용을 하지 않는 건지, 아니면 상황에 따라 유기적으로 사용을 할 수도 있는 지가 궁금합니다. 또한, 현업에서는 해당 타입을 어떻게 사용하는 지가 궁금합니다!기타
(Optaionl) 어떻게 테스트하셨나요?