Database
 sql >> Base de données >  >> RDS >> Database

Relations prismatiques

Les relations Prisma résolvent un énorme problème avec les bases de données et la gestion des données.

Supposons que vous ayez une liste d'utilisateurs dans votre application, qui créent des tweets (imaginez Twitter).

Dans votre schéma, vous pouvez définir la relation entre ces 2 entités de cette manière :

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[]
}

Lorsque vous créez un nouveau tweet, vous l'associez à un utilisateur avec l'identifiant 1 de cette manière :

await prisma.tweet.create({
  data: {
    text: req.body.content,
    author: {
      connect: { id: 1 }
    }
  }
})

Ensuite, vous pouvez récupérer les informations sur l'auteur lorsque vous recevez un tweet, avec :

await prisma.tweet.findMany({
  include: {
    author: true
  }
})

Vous pouvez également créer un utilisateur et remplir la base de données avec 2 tweets qui lui sont associés :

await prisma.user.create({
  data: {
    tweets: {
      create: [
        { text: 'test' },
        { text: 'test2' },
      ]
    }
  }
})