Web

공연 예매 프로젝트 - ERD 수정(3), API 명세서 수정

필립 2024. 7. 4. 02:19

오늘은 

ERD와 API 명세서 피드백을 받았습니다. 

수정한 부분을 적어보겠습니다. 

 

ERD

기존 ERD
변경된 ERD

1. 잔여 좌석 -> 판매 좌석 변경 

- 잔여 좌석으로 두고 데이터를 추가했을 시 좌석을 포함하는 테이블 공연 일정이 추가된다면 잔여 좌석을 총 개수만큼 다시 추가해서 데이터베이스에 추가 해줘야 했습니다. 예시로는 3개만 추가했으나 만약 100개 정도의 좌석 정보를 갖게 된다면 매번 일정을 추가할 때마다 꽤 많은 데이터를 매번 추가 해줘야 할 것입니다. 

데이터 입력 예시 매번 seat 정보를 추가해줘야 한다.

- 판매 좌석으로 변경함으로써 판매가 되었을 때만 테이블이 추가되도록 ERD 설계를 변경하였습니다. 이로써 매번 좌석 정보 데이터를 추가해 줄 필요가 없어지고 불필요한 데이터의 양을 줄일 수 있을 것입니다.

 

2. 티켓이 갖고 있던 중복된 컬럼 제거 

- 이것은 선택적인 부분이지만 튜터님의 피드백을 받아 제거하였습니다. Join을 줄이고 한 번에 모든 정보를 포함하려는 의도는 알겠으나, 이로써 중복 데이터가 늘어나고 데이터의 정합성이 깨질 수 있다는 피드백을 받아 티켓 테이블의 컬럼을 최소화했습니다. 

 

3. 공연 일정 테이블에 전체 좌석 개수 추가

- 전체 좌석 개수를 카운팅하며 판매 좌석 테이블과 빼면 남은 좌석 개수도 알 수 있을 것입니다. 남은 좌석의 개수는 따로 저장하지 않고 호출 시 response를 통해 결과를 반환하고 혹은 redis를 통해 캐시 데이터를 갖고 있는 방법으로 구현하려고 합니다.

 

4. 티켓 구매 내역 테이블 최소화 

- 사용자에게 내역을 보여줄 때 유저가 사용할 수 있는 가용 금액과 합산 금액은 표시해 줄 필요 없는 데이터일 것입니다. 삭제하고 티켓 가격만을 남겼습니다. 


API 명세서

 

1. URL 단수형 -> 복수형으로 변경 

2. RESTful 할 수 있도록 필요 없는 경로 삭제.


지금은 실제 코드로 구현 중입니다.

Nest.JS가 처음이라 쉽지는 않으나 어떤 사항을 구현했는지 또 적어보도록 하겠습니다.