작성
·
218
·
수정됨
0
[질문 내용]
안녕하세요! 강의를 들으며 제 사이드 프로젝트의 데이터베이스를 설계하는 과정에서 궁금증이 생겨 질문드립니다.
저는 Content라는 엔티티 클래스를 만들고 이를 상속받는 Post, Comment 클래스를 만들었습니다.
Content라는 부모 엔티티 클래스를 만든 이유는 내용을 담는 body라는 필드를 Post와 Content가 동일하게 가지기 때문입니다. 후에 프로젝트가 커지면 image, link등과 같은 여러 필드들이 Content에 추가될 예정입니다.
이때 Post는 title 필드를 추가적으로 가지고 있고 Comment를 여러 개 가질 수 있는데, 일반적인 상황에서 동일한 엔티티 클래스를 상속받은 클래스끼리도 이러한 ManyToOne 관계를 가지게 설계하는지 궁금합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. 질문에 대한 답변을 드리겠습니다.
Content를 부모 엔티티로 두고 Post와 Comment를 상속받는 것은 일반적인 상황입니다. 여러 엔티티 클래스들이 공통으로 가지는 속성이 존재할 때, 상속 관계를 통해 중복을 피하고 코드의 재사용성을 높일 수 있습니다.
Many-to-One 관계는 부모 엔티티에 해당하는 여러 자식 엔티티가 하나의 부모 엔티티를 참조하는 관계입니다. Post 엔티티가 Content 엔티티를 참조하는 것이 일반적입니다. Comment 엔티티도 Content 엔티티를 참조할 수 있지만, 이는 프로젝트의 요구사항에 따라 다를 수 있습니다.
따라서, Post와 Comment 엔티티들이 Content 엔티티를 참조하는 Many-to-One 관계를 가질 수 있습니다. 이를 JPA 어노테이션으로 구현할 때는 @ManyToOne 어노테이션을 사용하면 됩니다.
위의 설계는 일반적인 방법이지만, 프로젝트의 구조 및 요구사항에 따라 상황에 맞게 설계하는 것이 가장 중요합니다. 필요한 속성들을 공통으로 가지는 부모 엔티티를 정의하고, 상속받는 자식 엔티티들을 구현하는 것은 효율적인 설계 방법일 수 있습니다.
추가적인 질문이 있으시면 언제든지 물어보세요. 좋은 결과를 이끌어낼 수 있도록 도와드릴게요!