상품 폴더 설계

금은체리·2023년 11월 19일
1

Spring

목록 보기
40/49

요구사항 분석


폴더 테이블 설계 및 폴더와 회원의 관계

  • 폴더 테이블에 필요한 정보
    1. 폴더명(name): 회원이 등록한 폴더 이름을 저장
    2. 회원ID(user): 폴더를 등록한 회원의 ID를 저장
      • A회원이 생성한 폴더는 A회원에게만 보여야 함
      • 폴더와 회원의 관계
        • '폴더와 회원'의 관계는 '상품과 회원'의 관계와 동일
      • 폴더 : 회원 = N : 1, 다대일 관계
  • 회원 객체에서 폴더 객체를 조회하는 경우가 없기 때문에 폴더와 회원을 N : 1 단방향 연관관계로 설정

상품과 폴더의 관계

  1. 상품은 추가될 폴더의 정보가 필요함
  • 관심 상품에 폴더 등록
  • 상품은 여러개의 폴더 등록 가능
  • 폴더 : 상품 = N : 1
  1. 폴더에 관심 상품 등록
  • 하나의 폴더는 여러 개의 상품 포함 가능
  • 폴더 : 상품 = 1 : N
  1. 결과적으로 상품과 폴더는 N : M 다대다 관계
  • @ManyToMany 애너테이션을 사용하여 다대다 관계를 풀수도 있지만
  • 상품_폴더 중간 테이블을 만들어보기
  • 상품 : 상품_폴더 = 1 : N
  • 폴더 : 상품_폴더 = 1 : N
  1. 연관관계의 방향 선택
  • 관심 상품을 조회할 때 포함된 폴더들의 정보 필요
    • 상품 객체가 폴더 객체 조회 필요
  • 상품 객체를 기준으로 해당 폴더에 포함된 상품 조회
    • 상품 객체가 폴더 객체 조회 필요
  • 따라서 상품과 상품_폴더는 양방향 관계
  • 폴더 객체에서 상품 객체를 조회하지 않을 예정이기 때문에 폴더는 상품_폴더와 관계를 맺지 않음
profile
전 체리 알러지가 있어요!

0개의 댓글