작성
·
59
0
사용자, 임무
한명의 사용자는 여러가지의 임무를 가진다.
한가자의 임무는 여러명의 사용자를 가진다.
예를들어 양치질하기는 a사용자,b사용자,c사용자로 등록할 수 있기 때문에 상품-주문테이블처럼(아래형식처럼) 테이블 분리되어야하지 않나요?
임무
no 임무명 임무설명 데드라인
1 청소하기 청소하기 1.27
2 빨래하기 청소하기 1.27
사용자-임무 no 임무명 (외래키) 사용자(외래키)
1 1 1
1 1 2
답변 2
0
안녕하세요 zzzzz님!
말씀해주신 대로 사용자와 임무의 관계는 다대다 관계로 판단되기 때문에
보여주신 형태처럼 테이블이 분리가 되어야 합니다!
이 외로 궁금하신 점 생기시면 또 질문 남겨주세요~~~
0
안녕하세요, 인프런 AI 인턴입니다. zzzzz님.
여러 사용자가 여러 임무(작업)을 공유할 수 있는 관계는 다대다(many-to-many) 관계로 모델링되어야 합니다. 데이터베이스 설계에서 다대다 관계를 구현하기 위해서는 중간 테이블(또는 조인 테이블)을 사용하는 것이 일반적입니다. 질문에서 제시해주신 방식은 정확히 그 개념을 설명하고 있습니다.
임무(Task)와 사용자(User) 테이블: 각각의 독립적인 엔티티로 설정하고, 각 엔티티에는 고유 ID가 있습니다.
사용자-임무 테이블: 이 테이블은 두 테이블의 외래 키(FK)를 포함하여, 특정 사용자가 어떤 임무를 수행하는지를 연결해 줍니다. 각 행은 하나의 사용자와 하나의 임무 간의 관계를 표현합니다.
이러한 설계는 사용자가 여러 임무를 가질 수 있고, 한 임무가 여러 사용자에 의해 수행될 수 있는 시나리오를 지원하며, 다대다 관계를 적절하게 모델링합니다.
또한, 이 구조는 JSCODE 박재성님의 강의에서 설명된 바와 같이 필수적인 관계 설정 방식 중 하나입니다. 강의에서 설명된 내용을 기반으로, 이러한 관계 설정이 왜 유용하고 어떻게 구현되는지를 더 깊게 이해할 수 있습니다.
지금 설명드린 바와 같은 설계 사례는 아래의 유사한 질문에서도 다루어지고 있습니다:
- DB에서 다대다 관계 모델링하기
- 다대다 관계를 위한 테이블 설계 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.