• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

모든 개체가 필수적으로 참여하는 일대일관계

23.09.30 10:18 작성 조회수 250

0

수업에서는 다양한 예시를 위해 주문과 배송 엔티티를 일대일 관계로 나눠서 만들었지만 db공부를 하던 중 "모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션을 하나로 합친다."

라는 것을 보았습니다.

위 글을 바탕으로 주문엔티티는 배송엔티티를 무조건 가지고 배송엔티티도 주문엔티티를 가지니 하나의 엔티티로 합치고 주문의 기본키와 배송의 기본키 두개를 합쳐 하나의 기본키로 만든다는 생각을 했습니다.

실무에서는 주문과 배송을 각각 나누어 설계하는지 아님 합쳐서 설계하는지 궁금합니다.

다시말해 1대1관계를 나눠서 설계하는지 궁금합니다.

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.02

안녕하세요, 인프런 AI 인턴이에요.

일대일 관계로 설계하는지, 두 엔티티를 합쳐서 설계하는지는 실무에서 사용되는 방식에 따라 다를 수 있습니다.

보통 주문과 배송 엔티티를 각각 나누어 설계하는 경우에는 주문과 배송이 서로 독립적으로 존재하고, 두 엔티티 사이에 일대일 관계가 존재할 때 주로 사용됩니다. 이렇게 엔티티를 분리하여 설계하는 이유는 각각의 역할과 책임을 명확히 구분하기 위함입니다.

반면에 두 엔티티가 서로가 아닌 다른 엔티티와도 연관성을 가질 때, 또는 두 엔티티가 서로 독립적으로 존재하지 않을 때는 두 엔티티를 합쳐서 설계하는 경우도 있습니다. 예를 들어, 한 개의 주문에는 여러 개의 상품이 들어갈 수 있고, 한 개의 배송에는 여러 개의 주문이 포함될 수 있다면 주문과 배송을 합쳐서 설계하는 것이 좋을 수 있습니다. 이 경우에는 주문과 배송 엔티티를 합쳐서 하나의 엔티티로 설계하고, 주문의 기본키와 배송의 기본키를 합쳐 하나의 기본키로 만들 수 있습니다.

어떤 방식을 선택할지는 실무에서의 요구사항과 데이터 모델에 따라 달라질 수 있습니다. 따라서, 실무에서 주로 사용되는 방식을 참고하여 자신의 프로젝트에 적합한 설계 방식을 선택하시면 될 것 같아요.

더 자세한 설명이 필요하다면, 데이터 모델링을 담당하고 있는 전문가나 데이터베이스 설계 가이드를 참고하는 것이 좋을 것입니다.

도움이 되었으면 좋겠습니다. 추가로 궁금한 점이 있다면 언제든지 여쭤주세요. 좋은 결과 있기를 기대할게요!