Prismaリレーションは、データベースとデータ処理に関する大きな問題を解決します。
アプリにツイートを作成するユーザーのリストがあるとします(Twitterを想像してください)。
スキーマでは、次の方法でこれら2つのエンティティ間の関係を定義できます。
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[]
}
新しいツイートを作成するときは、IDが1
のユーザーに関連付けます。 このように:
await prisma.tweet.create({
data: {
text: req.body.content,
author: {
connect: { id: 1 }
}
}
})
次に、ツイートを1つ取得したときに、次のコマンドを使用して作成者情報を取得できます。
await prisma.tweet.findMany({
include: {
author: true
}
})
ユーザーを作成し、それに関連付けられた2つのツイートをデータベースに入力することもできます。
await prisma.user.create({
data: {
tweets: {
create: [
{ text: 'test' },
{ text: 'test2' },
]
}
}
})