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 : 부모 참조키 변경 불가
반응형
'프로젝트 > RESUMER' 카테고리의 다른 글
zustand를 활용한 팝업, 토스트 메세지 (1) | 2025.05.24 |
---|---|
[resumer] zustand persist 사용, 커링 currying (0) | 2025.05.20 |