프로젝트를 만들면서 실제 쇼핑몰 사이트를 많이 참고했는데 유저가 장바구니에 담아뒀거나 좋아요를 눌렀던 상품이 더이상 판매를 안하더라도 목록에서 사라지는것이아니라 품절 혹은 품절상품 등으로 표현되는것 확인
따라서 우리 프로젝트도 이렇게 구현하는게 좋겠다고 생각함
이걸 구현하려면 DB에서 상품 데이터가 아예 삭제되는것이아니라 DB 엔 남아있고 품절과 품절이 아닌것을 구분하는 방법 필요
재고라는 개념을 도입해 재고가 0 이면 품절, 1 이상이면 품절이 아닌것
따라서 재고가 1개 남은것을 누군가 구매하면 재고가 0 이되고 이 상품은 누군가의 장바구니 목록, 좋아요 목록, 구매 내역에서는 품절로 뜨게되고 상품 목록 페이지에서는 노출이 안되도록 구현
이 개념을 도입하니 당연히 재고를 추가하는 기능도 만들게됨
판매자 유저가 탈퇴를한다면 관련 정보를 삭제해야하므로 유저 테이블에서 삭제시켜야하는데 그럼 상품 테이블의 외래키인 유저 id(pk)가 삭제되는 문제 발생
그럼 이때는 일반 유저의 장바구니 목록, 좋아요 목록, 구매 내역 에서 슬쩍 사라지는게 맞나 계속 품절로 띄워주는게 맞나 고민
결국 우리는 DB에 계속 남겨두고 품절로 띄워주기로 결정
그래서 삭제된 상품은 등록 유저를 관리자 계정으로 변경하고 재고는 -100, 상품설명을 “deleted product”라고 변경하여 정상 등록 상품이지만 재고가 0인 상품과는 구분하기로함
우리 프로젝트는 이렇게 구현했지만 실제 현업에서는 어떻게 하는지 궁금