如何解决在 Prisma 中建模评级系统
我想在我的项目(使用 Next.js)中包含一个评级系统(例如 YouTube 有)。我应该如何用 Prisma
语言对评分进行建模?
我知道这是一个简短的问题。它值得一个简短的回答。
谢谢,伙计们!
解决方法
这里有一个 Prisma 架构,它允许您记录电影的评分以及对动作进行评分的相关用户:
model User {
id Int @id @default(autoincrement())
email String @unique
city String
name String?
ratingsGiven Ratings[]
}
model Movie {
id Int @id @default(autoincrement())
name String @unique
year DateTime
Ratings Ratings[]
}
model Ratings {
id Int @id @default(autoincrement())
rating Decimal
movie Movie @relation(fields: [movieId],references: [id])
movieId Int
user User @relation(fields: [userId],references: [id])
userId Int
}
这使用小数来表示评级。如果您想做一些更简单的事情,您可以在 Movie
模型上设置拇指向上和向下字段,您可以根据用户点击次数增加该字段:
model Movie {
id Int @id @default(autoincrement())
name String @unique
year DateTime
thumbsUp Int
thumbsDown Int
}
使用这个更简单的模型,您可以使用 atomic number operations 来增加和减少:
const updatedMovie = await prisma.movie.update({
where: { id: 10 }
data: {
thumbsUp: {
increment: 1,},})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。