패스잇
시스템 설계 · 기초

"한 명의 고객은 여러 개의 주문을 할 수 있다"는 비즈니스 요구사항을 관계형 데이터베이스로 설계할 때, 어떤 테이블과 컬럼을 사용하여 1:N(일대다) 관계를 표현할 수 있을까요?

힌트 · '고객' 테이블과 '주문' 테이블을 만들고, '주문' 테이블에 '고객' 테이블의 기본 키를 외래 키로 포함하여 연결합니다.

외래 키주 테이블자식 테이블관계형 데이터베이스참조 무결성

모범답안

네, "한 명의 고객은 여러 개의 주문을 할 수 있다"는 1:N 관계를 관계형 데이터베이스로 설계하는 방법에 대해 설명드리겠습니다.

가장 일반적인 방법은 두 개의 테이블, 즉 '고객' 테이블과 '주문' 테이블을 사용하는 것입니다. '고객' 테이블은 고객의 정보를 담고, '주문' 테이블은 주문 정보를 담습니다.

핵심은 '주문' 테이블에 '고객' 테이블의 기본 키를 외래 키로 포함시키는 것입니다. 예를 들어, '고객' 테이블에 customer_id라는 기본 키가 있다면, '주문' 테이블에 customer_id라는 외래 키 컬럼을 추가하여 각 주문이 어떤 고객에 속하는지 나타낼 수 있습니다.

이렇게 하면 '주문' 테이블의 각 레코드는 특정 '고객' 테이블 레코드를 참조하게 되고, 하나의 고객이 여러 개의 주문을 가질 수 있게 됩니다. 또한, 외래 키 제약 조건을 통해 데이터의 참조 무결성을 유지할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 데이터베이스 설계 면접 질문

← 데이터베이스 설계 면접 질문 전체 보기