@relation(name)
둘 이상의 어트리뷰트가 하나의 모델을 참조할 때 사용한다.
model A {
id Int @id @default(autoincrement())
tmp1 B[] @relation(name: "tmp1")
tmp2 B[] @relation(name: "tmp2")
}
model B {
id Int @id @default(autoincrement())
tempBy A @relation(name: "tmp1", fields: [tempByA], references: [id])
tempByA Int
tempFor A @relation(name: "tmp2", fields: [tempForA], references: [id])
tempForA Int
}
하나의 릴레이션을 여러 값으로 사용할 때 쓴다.
model Person {
id Int @id @default(autoincrement())
name String
kind Kind
}
enum Kind {
Admin
User
}
// api url 구성 시
const adminUrl = "/api/person?kind=admin"
const userUrl = "/api/person?kind=user"
// api handler에서 호출 시
const kinds = await prisma.person.findMany({
where: {
userId: user?id,
kind: "User",
}
})