Las relaciones de prisma resuelven un gran problema con las bases de datos y el manejo de datos.
Suponga que tiene una lista de usuarios en su aplicación, que crean tweets (imagínese Twitter).
En su esquema puede definir la relación entre esas 2 entidades de esta manera:
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[]
}
Cuando creas un nuevo tweet lo asocias con un usuario con id 1
de esta manera:
await prisma.tweet.create({
data: {
text: req.body.content,
author: {
connect: { id: 1 }
}
}
})
Luego puede recuperar la información del autor cuando recibe un tweet, con:
await prisma.tweet.findMany({
include: {
author: true
}
})
También puede crear un usuario y llenar la base de datos con 2 tweets asociados:
await prisma.user.create({
data: {
tweets: {
create: [
{ text: 'test' },
{ text: 'test2' },
]
}
}
})