프로젝트/RESUMER

[resumer] prisma 외래키 설정

문앵 2025. 5. 29. 18:04

prisma의 데이터 스키마 파일에서 외래키 설정하기 (꽤나 번거롭)

 

자식 >==(참조)==> 부모

외래키 >==(참조)==> 참조키

 

자식 테이블의 외래키가 부모 테이블의 참조키를 참조한다는 전제하게 생각해보자.

 

(우선 부모의 참조키는 유니크 또는 프라이머리키여야 한다.)

 

1. 부모 모델에 관계 생성

- 부모와 자식이 어떤 관계인지 표시해준다.

부모의 아이디 하나를 가지고 자식의 여러 레코드에서 중복해서 사용할 수 있기에 1: N 관계이다.

model site {
  id         Int          @id @default(autoincrement())
  name       String
  group_codes group_code[]  // 1:N 관계
}

이걸 쉽게 보면 아래 모양이다

 

model 부모 {
  id         Int          @id @default(autoincrement())
  name       String
  임의값     자식[]  // 1:N 관계
}

 

 

2. 자식 모델에 키 정의

model group_code {
  id      Int   @id @default(autoincrement())
  name    String
  site_id  Int
  site    site  @relation(fields: [site_id], references: [id])
}

이걸 또 쉽게 보면 아래와 같다

 

model 자식 {
  id      	  Int     @id @default(autoincrement())
  name    	  String
  외래키  	  Int
  임의값      부모     @relation(fields: [외래키], references: [참조키])
}

 

 

끗.

 

++ 옵션도 있다

@relation(fields: [], references: [], onDelete: Cascade, onUpdate: Restrict)

 

==> onDelete : 부모 참조키 삭제시 자식 외래키도 삭제 , onUpdate : 부모 참조키 변경 불가

반응형