As relações Prisma resolvem um grande problema com bancos de dados e manipulação de dados.
Suponha que você tenha uma lista de usuários em seu aplicativo, que criam tweets (imagine o Twitter).
Em seu esquema você pode definir a relação entre essas 2 entidades desta forma:
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[]
}
Ao criar um novo tweet, você o associa a um usuário com id
1
desta maneira:await prisma.tweet.create({
data: {
text: req.body.content,
author: {
connect: { id: 1 }
}
}
})
Em seguida, você pode recuperar as informações do autor quando receber um tweet, com:
await prisma.tweet.findMany({
include: {
author: true
}
})
Você também pode criar um usuário e preencher o banco de dados com 2 tweets associados a ele:
await prisma.user.create({
data: {
tweets: {
create: [
{ text: 'test' },
{ text: 'test2' },
]
}
}
})