유튜브블로그Top 10
내 프로필

데브허브 안내
소개업데이트 소식

데브허브 커뮤니티

Why Would a Joining Table Link to 3 Tables?

Database Star

2025. 7. 21.

0

#db
  • 데이터베이스에서 다대다 관계를 처리하는 조인 테이블은 일반적으로 두 테이블의 외래 키를 가집니다. 🤝
  • 하지만, 이 관계에 대한 '상태'나 '메타데이터'를 추적해야 할 때 세 번째 테이블을 연결하는 것이 필요합니다. 🔗
  • 조인 테이블에 상태를 자유 텍스트 컬럼으로 직접 저장하는 것은 오타, 쿼리 어려움, 유효성 검사 부재, 메타데이터 부족 등의 문제로 비효율적입니다. 📝
  • 가장 좋은 방법은 상태나 메타데이터를 위한 별도의 '조회 테이블(lookup table)'을 생성하고, 이 조회 테이블의 기본 키를 조인 테이블의 세 번째 외래 키로 추가하는 것입니다. 📚
  • 예를 들어, student_course 조인 테이블에 enrolment_status 조회 테이블의 status_id를 추가하여 학생의 강좌 등록 상태(수강 중, 완료, 중도 포기 등)를 관리할 수 있습니다. 🎓
  • 또 다른 예시로, doctor_specialisation 조인 테이블에 specialisation_status 조회 테이블의 status_id를 추가하여 의사의 전문 분야 상태(활동 중, 만료, 검토 중 등)를 추적할 수 있습니다. 🩺
  • 조인 테이블은 세 번째 테이블에 연결되지 않는 next_review_date와 같은 추가적인 직접 속성도 포함하여 레코드 정보를 다양하게 확장할 수 있습니다. ➕
  • 이러한 디자인은 데이터 일관성을 유지하고, 중복을 방지하며, 쿼리를 더 쉽게 작성하고 유지 관리할 수 있도록 돕습니다. ✨
  • 학생-강좌 상태, 프로젝트-직원 역할, 사용자-그룹 멤버십, 제품-카테고리 태그 유형 등 다대다 관계와 목록 형태의 추가 메타데이터가 필요한 경우에 특히 유용합니다. 💡

Recommanded Videos