DB

객체지향 DB를 어떻게 볼 것이냐 <JPA>

NEWDODORIPYO 2022. 5. 23. 20:23

객체지향형 DB의 가장 어렵고 복잡하다고 생각된 부분인 N:1 오늘 그 부분에 대한 엄청난 팁을 얻었습니다 

우선 어떤부분에서 어렵다고 생각되는지 그림으로 보겠습니다

이 그림을 보면 똑같은 게시물 댓글의 관계이지만 어떤 관점에서 보느냐에 따라 관계가 달라지는 걸 볼 수 있습니다 

  • 하나의 게시물은 여러 댓글을 가진다 Many To One
  • 하나의 댓글은 하나의 게시글에 속한다 One To One

우선 두가지 모두 틀린 것은 아니지만 기존 DB를 설계해봤다면 의문이 생기는 것은 ERD를 만들어보면 당연하게 우리는 

"하나의 게시물은 여러 댓글을 가진다 Many To One" 로 이해할 것이다 하지만 그런 것이 아니고 JPA로 바로 입문을 했다면 이 부분에서 많이 고민이 생길 것이다 관점에 따라 다르게 보이기 때문이다 그렇다면 "One To One" 이 아닌 "Many To One" 을 사용하는 이유를 알아보고 그리고 보다 쉽게 접근하는 엄청난 팁을 알아보자 

 

우선 참조는 양쪽에서 이루어 질수도있기에  One To One 의 선택은 잘못된 선택이다 그렇기에 "Many To One"의 관점으로 보는 것이 올다고 생각된다 (관점에 따라 착각 오해할 수 있다 , 게시물 입장에서는 Many To One 댓글 입장에서는 One To One )

 

❗❗관계라는 것이 일방적인 것이 아니다

 

그렇다면 쉽게 접근할 수 있는 팁은 어떤 것이 있을까?? 

  • ⭐PK가 아닌 FK위주로 관계를 생각하면 이런 복잡한 고민을 조금 쉽게 접근할 수 있다 <FK 가지고 있는 쪽부터 해석하기>
  • ERD를 만들어봤다면 저 관계를 쉽게 해결할 수 있다 당연하게 Many To One

 

위 팁들을 보면 역시.... 이해하기 쉬우려면 관계형 DB에 대해서 어느 정도 알고 있어야 객체지향 DB도 이해할 수 있다는 걸 알 수 있다