ERD - 장바구니

0

DB

목록 보기
6/17

  • 원래 장바구니 테이블에서 장바구니 번호(PK), 회원번호(FK),상품번호(FK), 상품수량 4가지가 있었다.
    근데 장바구니 번호가 필요없을 것 같다는 생각을 시작으로
    1. 장바구니 번호가 있고, 장바구니에 상품을 추가할 때 마다 장바구니의 번호를 sequence로 계속해서 증가하게되면 수가 너무 커지지않는가
    2. 회원번호와 상품번호를 복합키로 사용하면 장바구니번호가없어도 되는데 복합키를 많이사용하는게 좋지않을거같은데..

를 고민하게 됐다. 결국 질문한 결과

  • 이 상태에서는 장바구니 번호를 sequence로 대체키를 사용하고, 회원번호랑 상품번호를 (pk같은 역할을 하는) fk로 사용하는 것으로 해서 테이블을 짰는데
    서비스가 커지다보면 sequence가 말도안되게 증가할 것.
  • 하지만 또, 데이터 상으로는 복합키가 좋지만 복합키는 최대한 지양하는게 좋다. 왜냐하면 SQL상에서 WHERE user_id = ? and prod_num =? 로 계속 and로 찾아오게 될텐데 이는 퍼포먼스상 좋은 모습이 아니다.

하지만, 장바구니의 경우에는 WHERE user_id = ? and prod_num =?로 찾아오는 일보다는 WHERE user_id = ? 만으로 주문을 하기 때문에 SQL에서 and를 사용할 일이 거의 없을 것이기 때문에 복합키를 사용하는 위험도가 좀 적을 것이다.

주문상세도 마찬가지로

  • 주문을 상세조회 할때 주문번호와 상품번호를 모두 가져올 일이 생기지, 거의 주문 상세 복합키를 WHERE절로 가져올 일이 많지 않기때문에 괜찮았던 것이다.

장바구니 상세를 만드는 방법도 있지만, 그냥 복합키를 사용하기로 했다.

profile
백엔드를 공부하고 있습니다.

0개의 댓글