prisma - 自动生成的 prisma 增量字段
问题描述
我创建了一个Order
在我的datamodel.prisma
文件中调用的实体。它应该在那里自动生成名为orderRef
. createOrder
对于每个突变调用,它应该为 Order 实体的字段自动生成一个增量值。
对于第一个订单,“orderRef”字段的值应为 OD1,第二个订单的“订单参考”字段的值应为 OD2,依此类推。例如:
(OD1、OD2、....... OD124、......)
实现这一目标的最简单方法是什么?是的,值应该是字符串,而不是数字。
解决方案
目前,您不能在 Prisma 中自动生成递增字段。但是,有一个关于字段行为的 RFC将来会允许这种功能。
目前,有3种选择:
1/ 创建节点时,进行查询以检索相同类型的最后一个节点,并增加最后一个值。
query {
things(orderBy: createdAt_desc, first: 1) {
myId
}
}
...
newId = myId + 1
...
mutation {
createThing(data: {myId: newId, ... }) {
...
}
}
2/ 创建节点时,进行聚合查询以检索所有相同类型节点的计数,并根据计数递增。(但是,如果您删除以前的节点,您可能会发现自己多次具有相同的值。)
query {
thingsConnection {
aggregate {
count
}
}
}
...
newId = count + 1
...
mutation {
createThing(data: {myId: newId, ... }) {
...
}
}
3/ 如果您需要用户可读的 id,请考虑创建一个随机的 6 个字符长的字符串或使用库。(这将消除对额外查询的需要,但随机性可能会产生令人惊讶的行为)
推荐阅读
- java - 在 java 的构造函数中创建的未分配对象的生命周期是多少?
- php - 如何从 mysql 数据库中填充下拉列表并且不应该重复值
- php - Laravel Dusk 如何对每个元素执行 RightClick?
- php - 无法解析插件“学说”
- python - 带有袖扣的 Pandas 多图不工作
- javascript - 我想将对象数组中的图像存储到
- java - Hybris 服务器显示垃圾收集问题?
- firebase - Nuxtjs 和 Firebase 身份验证:等待 firebase.auth().currentUser 不等待?
- php - mysql中的考勤倒车结果
- aem - AEM 页面管理器为使用 Sling 映射的映射页面返回 null