Prisma-relaties lossen een enorm probleem op met databases en gegevensverwerking.
Stel dat je een lijst met gebruikers in je app hebt die tweets maken (stel je Twitter voor).
In je schema kun je de relatie tussen die 2 entiteiten op deze manier definiëren:
model Tweet {
id Int @id @default(autoincrement())
text String
author User @relation(fields: [authorId], references: [id])
authorId Int
}
model User {
id Int @default(autoincrement()) @id
tweets Tweet[]
}
Wanneer u een nieuwe tweet maakt, koppelt u deze aan een gebruiker met id 1
op deze manier:
await prisma.tweet.create({
data: {
text: req.body.content,
author: {
connect: { id: 1 }
}
}
})
Vervolgens kunt u de auteursinformatie ophalen wanneer u één tweet ontvangt, met:
await prisma.tweet.findMany({
include: {
author: true
}
})
U kunt ook een gebruiker aanmaken en de database vullen met 2 gekoppelde tweets:
await prisma.user.create({
data: {
tweets: {
create: [
{ text: 'test' },
{ text: 'test2' },
]
}
}
})