야놀자와 비슷하게 숙박 예약 서비스를 제공하는 프로젝트를 진행하게 되었다
최대한 야놀자가 제공하는 서비스와 비슷하게 구현하기 위하여 여러가지 사항을 고민해 보았다
우리가 제공할 것은 크게 다음과 같은 5가지의 기능들이었다
- 숙소 조회
- 숙소 형태 별 조회(펜션, 호텔 ...)
- 지역별 조회
- 숙소 객실들 조회
- 숙소 객실 상세 조회
- 객실 장바구니 기능
- 객실 예약내역 기능
위와 같은 기능을 제공하기 위해서 erd는 아래와 같이 구성해 보았다

erd를 짤때 서로 어떻게 연관관계를 맺어 줘야할지에 대해서 얘기를 많이 나눴던것 같다
그중에서도 나중에 프로젝트를 하게 된다면 바꾸고 싶은부분은 아래 부분이었다

각 숙소는 숙소 편의시설이 존재 했는데 우리는 직접 이 데이터 들을 다 넣어줘야 하고 추후에 편의시설을 추가하지 않겠다는 조건으로 위와 같이 편의시설 여부를 필드로 두고 해당 값을 boolean 으로 둬서 구분하였었다
하지만 위와 같이 진행할 경우
- boolean 값으로 다루는 것이 좋지 않음
- 추후에 편의시설을 새로 등록하게 될 경우 기존 값들에 대하여 하나씩 수정 필요
의 문제가 발생하여 숙소와 편의시설을 1:N 관계로 생각해 보는 건 어떠한지 조언을 얻게 되었다
위의 문제들을 해결하기 위하여 아래와 같이 생각하였다

생각해보니 숙소들이 중복되는 여러개의 편의시설을 가질 수 있고 편의시설들도 여러개의 숙소들을 포함할 수 있는것 같아 다대다 관계가 성립된다고 생각이 들어서 위와 같이 테이블을 다시 구성해 보았다
위의 수정사항에 대하여 다음과 같은 피드백을 받게 되어 다행이라고 생각하였고 앞으로 위와 같은 상황이 생겼을 경우 수정했던 부분과 같이 생각해 보기로 했다!

'Backend' 카테고리의 다른 글
[패캠] 패스트캠퍼스X야놀자 미니프로젝트 (0) | 2023.12.22 |
---|---|
관광정보 API 사용하기 (0) | 2023.11.19 |
[패캠] 패스트캠퍼스X야놀자: 토이 프로젝트 3단계 (0) | 2023.11.19 |
[패캠] 패스트캠퍼스X야놀자: 토이 프로젝트 2단계 (0) | 2023.11.03 |
Swagger 사용하기 (0) | 2023.10.26 |