작성
·
200
답변 2
1
안녕하세요.
"하나의 학생은 여러 개의 수강신청을 하고", "하나의 수강신청은 여러 학생이 할 수 있다"고 하셨는데, 여기서 살짝 혼동이 있는 것 같아요. '수강신청'은 어떤 행위나 과정이 아니라, 관계를 표현하기 위해 만들어진 하나의 테이블로 봐주시면 좋아요.
제가 만든 데이터세트에는 학생(Student)
과 강의(Course)
가 다대다(N:M) 관계인데, 관계형 데이터베이스에서는 이런 관계를 직접 표현할 수 없기 때문에, 그 관계를 풀어내기 위해 '수강신청(Enrollment)'이라는 중간 테이블을 만듭니다.
즉, 수강신청 테이블은 각각의 학생이 어떤 강의를 신청했는지를 기록하는 역할을 해요.
정리하지면,
학생
↔ 강의
: N:M 관계
그걸 풀어내기 위해 수강신청
이라는 중간 테이블을 둔 것
만약 수강신청
을 하나의 독립된 개체로 본다면,
학생
↔ 수강신청
: 1:N 관계
강의
↔ 수강신청
: 1:N 관계
이렇게 해석할 수 있어요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 장지영님.
질문하신 학생과 수강신청의 관계는 다대다(N:M) 관계로 볼 수 있습니다. SQL 및 데이터베이스 설계에서 이러한 관계는 다음과 같은 특징을 가집니다:
이러한 두 관계가 결합될 때, 학생과 수강신청의 관계가 다대다(N:M)가 됩니다. 이를 구현하기 위해서는 보통 학생 테이블, 수강 테이블, 그리고 학생과 수강 사이를 연결해주는 중간 테이블을 사용하여 관계를 관리합니다.
다양한 예시와 상황에 대한 설명은 아래 링크의 기존 질문과 답변을 확인하시면 도움이 될 것입니다:
이러한 답변들은 데이터베이스 구조를 설계하는 데 있어 유용한 정보를 제공합니다. 추가적으로 궁금한 사항이 있으시면 계속 질문해 주시기 바랍니다. 곧 지식공유자께서도 더 상세한 답변을 제공해주실 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
덕분에 이해 된 것 같습니다!
감사합니다 :)