如何在两个字段中使用相同的生成 ID prisma-graphql
How to use same generated ID in two fields prisma-graphql
我正在实现一个 graphql prisma 数据模型。在这里,我有一个名为 BankAccount
的类型。我可能还需要更新和删除它们。我将其实现为不可变对象。因此,在更新时,我添加了将现有记录更新为 IsDeleted 并添加新记录。在更新现有记录时,我需要保留前一条记录的 ID 以了解更新了哪条记录。所以,我想出了一个像这样的类型
type BankAccount {
id: ID! @unique
parentbankAccount: String!
bankName: String!
bankAccountNo: String!
isDeleted: Boolean! @default(value: "false")
}
这里的 parentBankAccount
保留了之前 BankAccount
的 id。我在考虑 创建 银行帐户时,将 parentBankAccount
设置为与 id
相同,因为它没有父级。问题是我不确定这是否可能。我对 GraphQL 有点陌生。因此,任何帮助将不胜感激。
谢谢
在GraphQL中,一般如果一个对象引用另一个对象,你应该直接引用那个对象;你不会嵌入它的ID。您还可以使字段可为空,以支持某些关系不存在的情况。对于这个特定的字段,这看起来像
type BankAccount {
parentBankAccount: BankAccount
...
}
只要帐户没有父级,该字段就是 null
。
在API级别,您描述的布局似乎有点奇怪。如果我打电话
query MyBankAccount {
me { accounts { id } }
}
我会取回一些唯一 ID。稍后再打电话我会有点惊讶
query MyBalance($id: ID!) {
node(id: $id) {
... on BankAccount {
name
isDeleted
balance
}
}
}
然后发现我的账户是 "deleted" 并且余额是一周前的。
在底层数据存储中使用不可变对象是有道理的,特别是出于可审计性的原因,但这往往不是您可以通过 GraphQL API 直接公开的东西(或大多数其他 API 层:这在 REST 框架中同样令人惊讶,其中对象 URL 应该是永久的)。
我正在实现一个 graphql prisma 数据模型。在这里,我有一个名为 BankAccount
的类型。我可能还需要更新和删除它们。我将其实现为不可变对象。因此,在更新时,我添加了将现有记录更新为 IsDeleted 并添加新记录。在更新现有记录时,我需要保留前一条记录的 ID 以了解更新了哪条记录。所以,我想出了一个像这样的类型
type BankAccount {
id: ID! @unique
parentbankAccount: String!
bankName: String!
bankAccountNo: String!
isDeleted: Boolean! @default(value: "false")
}
这里的 parentBankAccount
保留了之前 BankAccount
的 id。我在考虑 创建 银行帐户时,将 parentBankAccount
设置为与 id
相同,因为它没有父级。问题是我不确定这是否可能。我对 GraphQL 有点陌生。因此,任何帮助将不胜感激。
谢谢
在GraphQL中,一般如果一个对象引用另一个对象,你应该直接引用那个对象;你不会嵌入它的ID。您还可以使字段可为空,以支持某些关系不存在的情况。对于这个特定的字段,这看起来像
type BankAccount {
parentBankAccount: BankAccount
...
}
只要帐户没有父级,该字段就是 null
。
在API级别,您描述的布局似乎有点奇怪。如果我打电话
query MyBankAccount {
me { accounts { id } }
}
我会取回一些唯一 ID。稍后再打电话我会有点惊讶
query MyBalance($id: ID!) {
node(id: $id) {
... on BankAccount {
name
isDeleted
balance
}
}
}
然后发现我的账户是 "deleted" 并且余额是一周前的。
在底层数据存储中使用不可变对象是有道理的,特别是出于可审计性的原因,但这往往不是您可以通过 GraphQL API 直接公开的东西(或大多数其他 API 层:这在 REST 框架中同样令人惊讶,其中对象 URL 应该是永久的)。