Projects/[clone] 네이버 웹툰

05. Entity Relationship

생각없이 해도 생각보다 좋다. 2023. 6. 20. 16:37

23.06.20

엔티티 연관 관계; JPA

  • User : Ad = 1 : N
  • User : Web_Info = 1 : N
  • User : Web_Like = 1 : N
  • User : Web_View = 1 : N
  • Web_Info : Web_Eps = 1 : N
  • Web_Info : Web_Like = 1 : N
  • Web_Info : Web_View = 1 : N
  • Web_Eps : Web_View = 1 : 1

User

  • 유저(일반)
    • 유저가 여러 개의 관심 웹툰을 지정할 수 있음
    • 유저가 웹툰을 조회한 경우도 DB에 저장
      • 유저가 여러 웹툰을 조회할 수 있음
      • 웹툰을 조회할 땐, 웹툰의 여러 회차 중 하나의 회차만이 가장 최근 조회 데이터가 될 예정
  • 유저(작가)
    • 유저가 여러 개의 웹툰을 제작할 수 있음
  • 유저(기업)
    • 유저가 여러 광고를 낼 수 있음
  • 유저(관리자)

Web_Info

  • 웹툰이 여러 유저에게 관심 지정받을 수 있음.
    • 관심을 받은 개수는 따로 로직을 만들고, 숫자로 따로 속성에 저장
  • 웹툰이 여러 유저에게 조회될 수 있음.
    • 관심과 마찬가지로 조회수는 따로 속성에 저장
  • 웹툰이 여러 회차를 갖을 수 있음

Web_Eps

  • 해당 회차가 조회됐음을 Web_View에 저장

관심 웹툰

  • 일반 유저가 특정 웹툰들을 간편하게 보기 위해서 본인 계정과 연결한 웹툰들
  • 관심+ 버튼을 클릭하여 구동(관심 선택/해제)
  • 관심을 받은 웹툰은 몇 명의 유저에게 관심을 받았는지 기록

관심 웹툰 테이블(web_like)

  • User와 Web_Info의 N:M 관계를 해소하는 테이블
  • 비식별 관계로 구현하기 위해 관심 웹툰만의 id(식별자)를 별도로 설정
  • wen_info에 몇 명의 유저가 관심을 갖는지 알 수 있는 count 속성을 추가
    • cnt 값을 관심 웹툰 테이블이 아닌 웹툰 info 테이블에 넣으면 성능이 향상 될 것이라고 생각함.
    • 이를 위해서 관심 버튼 클릭 시 카운팅하는 로직을 구현할 필요가 있음.

'Projects > [clone] 네이버 웹툰' 카테고리의 다른 글

06. 느낀점  (0) 2023.06.21
06. api 정리  (0) 2023.06.21
06. git fetch 와 git pull 의 차이  (0) 2023.06.21
03. server 틀 제작  (0) 2023.06.20
02. ERD 작성  (0) 2023.06.16