작성
·
70
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
회원, 부서 테이블을 생성하다 고민이 생겨 해당 강의를 다시 복습해봐도 어떻게 하는게 좋을지 모르겠어 질문하게 되었습니다.
먼저 회원테이블은
회원 ID (PK)
부서 ID (FK, 부서테이블PK) , NULL
부서 테이블은
부서 ID (PK)
부서생성자 ID(FK, 회원테이블PK), NOT NULL
로 구성되어 있는 상황입니다.
필드의 개수를 최대한 간략히 나타내었는데,
이러한 상황에서
1. 중간테이블을 만드는게 나을지
( 이 경우 유저ID, 부서ID, type{소속 or 생성}),
2. 회원테이블의 부서ID와 부서테이블의 회원ID에 각각 ManyToOne을 걸어주는게 나을지
더 좋은 방법을 찾기가 어려워 질문드립니다!
답변 2
0
안녕하세요. ho_0214님
다대다 관계로 풀어내야 하는가 아닌가에 대한 핵심적인 질문은
하나의 회원이 여러 부서에 소속될 수 있는가. 그리고 하나의 부서에 여러 회원이 소속될 수 있는가 입니다.
이 둘을 동시에 만족해야 한다면 반드시 중간 테이블을 두고 다대다 관계로 풀어내야 합니다.
이런 상황이 아니라면 중간 테이블 없이 간단히 해결하는 것이 보통 좋은 방법입니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. ho_0214님!
다대다 관계를 구현하는 방법은 몇 가지로 나뉠 수 있습니다. 회원과 부서 간의 관계에 대해 고민이 많으실 것 같습니다. 이 문제는 여러 방향으로 접근할 수 있습니다.
중간 테이블을 사용하는 방법
type
열을 추가할 수 있습니다. 이는 관계를 명확하게 정의하고 확장 가능하게 만들어 주죠.ManyToOne을 사용하여 관계 설정
강의에서 다대다 관계에 대한 설명이 있었을 것인데, 이를 다시 한번 복습하시면 이해하는 데 도움이 될 것입니다. 데이터를 어떻게 설계할지는 애플리케이션의 기능 요구 사항에 따라 결정됩니다.
여기에서 유사한 질문과 답변을 확인하실 수 있습니다:
- ORM 질문드립니다 !
- 좋은 강좌 항상 감사드립니다. 추가로 질문이 있습니다
위의 링크에서 다대다 관계 처리와 관련된 다양한 접근 방법을 확인하고, 자신의 상황에 맞는 방법을 선택하시면 좋을 것 같습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
현재 1번과 2번 방식 모두 고려 중입니다.
1번은 다대다 관계를 풀어내는 가장 보편적인 방법이라고 생각합니다. 다만, 이 경우
회원ID, 부서ID 그리고 관계 타입(부서생성, 부서 소속 등) 컬럼을 포함한 중간 테이블을 설계해야 합니다. 이러한 타입 분기를 위해 중간 테이블을 만드는 것이 과한 설계가 아닐까 하는 고민이 있어, 2번 방식도 함께 검토하고 있습니다.
2번 방식처럼 회원 테이블에서 부서ID를 FK로, 부서 테이블에서 생성자ID를 FK로 두는 구조는 단순하고 명확하지만, 실무에서도 이러한 방식이 괜찮은 설계로 받아들여지는지 확신이 서지 않아 추가로 질문드립니다.
혹시 실무에서 유사한 사례가 있다면 방향성 잡는 데 큰 도움이 될 것 같습니다.