이 섹션에서는 .Net Core Web API를 사용하여 “Plant Number
” 테이블에 “Plant
” 테이블과의 외래 키 관계를 추가하는 방법을 설명합니다.
이 과정은 데이터베이스 설계에서 중요한 관계 설정 단계를 다룹니다. 다음은 강의 내용의 요약입니다.
- 데이터베이스 관계: “Plant” 테이블과 “Plant Number” 테이블 사이에는 1:N (하나의 식물에 여러 개의 식물 번호가 있을 수 있음) 관계가 있습니다. 이 관계를 데이터베이스에 명시적으로 표현하기 위해 “Plant Number” 테이블에 “Plant” 테이블을 참조하는 외래 키를 추가해야 합니다.
- 모델 수정: “Plant Number” 모델에
PlantID
필드를 추가하고, 이를 “Plant” 모델의ID
필드와 연결하는 외래 키로 설정합니다. 이를 위해ForeignKey
어노테이션을 사용하며, 연결될 “Plant” 모델의 인스턴스를 나타내는 탐색 속성도 추가합니다. - 마이그레이션 실행: 변경사항을 데이터베이스에 적용하기 위해 Entity Framework Core의 마이그레이션 기능을 사용합니다. 새로운 마이그레이션을 추가하고 데이터베이스를 업데이트하여 “Plant Number” 테이블에
PlantID
필드를 추가합니다. - 외래 키 제약 조건 충돌: 마이그레이션 실행 시, 이미 “Plant Number” 테이블에 데이터가 있는 경우 외래 키 제약 조건 충돌이 발생할 수 있습니다. 이는
PlantID
필드에 유효한 참조 값이 없기 때문입니다. 이 문제를 해결하기 위해, 마이그레이션을 실행하기 전에 “Plant Number” 테이블의 데이터를 삭제합니다. - 결과 확인: 마이그레이션을 성공적으로 적용한 후, “Plant Number” 테이블에
PlantID
필드가 추가되었으며, 이 필드가 “Plant” 테이블의ID
필드를 참조하는 외래 키로 설정된 것을 확인할 수 있습니다.
// 모델 수정
// PlantNumber.cs
public class PlantNumber {
public int PlantNo { get; set; }
public string SpecialDetail { get; set; }
public DateTime CreatedDate { get; set; }
public DateTime UpdatedDate { get; set; }
[ForeignKey("Plant")]
public int PlantID { get; set; }
public Plant Plant { get; set; }
}
패키지 콘솔 실행
PM> add-migration AddForeignKeyPlantTable
PM> update-database
이 과정을 통해 .Net Core Web API와 Entity Framework Core를 사용하여 데이터베이스 테이블 간의 관계를 설정하고, 외래 키를 통해 데이터의 무결성을 유지하는 방법을 배울 수 있습니다.