Le relazioni Prisma risolvono un enorme problema con i database e la gestione dei dati.
Supponiamo di avere un elenco di utenti nella tua app, che creano tweet (immagina Twitter).
Nel tuo schema puoi definire la relazione tra queste 2 entità in questo modo:
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[]
}
Quando crei un nuovo tweet lo associ a un utente con id 1
in questo modo:
await prisma.tweet.create({
data: {
text: req.body.content,
author: {
connect: { id: 1 }
}
}
})
Quindi puoi recuperare le informazioni sull'autore quando ricevi un tweet, con:
await prisma.tweet.findMany({
include: {
author: true
}
})
Puoi anche creare un utente e popolare il database con 2 tweet ad esso associati:
await prisma.user.create({
data: {
tweets: {
create: [
{ text: 'test' },
{ text: 'test2' },
]
}
}
})