Database
 sql >> Datenbank >  >> RDS >> Database

Prisma-Beziehungen

Prisma-Relationen lösen ein riesiges Problem mit Datenbanken und Datenverarbeitung.

Angenommen, Sie haben eine Liste von Benutzern in Ihrer App, die Tweets erstellen (stellen Sie sich Twitter vor).

In Ihrem Schema können Sie die Beziehung zwischen diesen beiden Entitäten folgendermaßen definieren:

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

Wenn Sie einen neuen Tweet erstellen, verknüpfen Sie ihn mit einem Benutzer mit der ID 1 auf diese Weise:

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

Dann können Sie die Autoreninformationen abrufen, wenn Sie einen Tweet erhalten, mit:

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

Sie können auch einen Benutzer erstellen und die Datenbank mit 2 damit verknüpften Tweets füllen:

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