【发布时间】:2022-05-24 10:39:03
【问题描述】:
在我的 Prisma 架构中,我有一个如下所示的模型:
model Document {
id String @id @default(uuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
draft Boolean @default(true)
publishedDocumentNumber Int? @unique()
text String?
}
创建每个文档时,它处于draft 模式,值设置为true。在正式发布之前,它没有publishedDocumentNumber。当我发布文档时,我会像这样更新草稿值:
prisma.draft.update({
where: {
id: req.body.id,
},
data: {
draft: false,
}
});
由于本文档不再是草稿,我想安全地将 publishedDocumentNumber 值自动递增到之前发布的 document 的 publishedDocumentNumber 值 + 1。我不想做 @987654328 @ 因为如果同时发布两个文档(竞争条件),我可能会意外地发生冲突,并且它们必须是唯一的。
有没有更好的方法来安全地做到这一点?
【问题讨论】:
-
这在数据库级别可能更容易做到。您能否提及您正在使用的数据库?
-
@TasinIshmam 我正在使用 Postgres
标签: prisma