【发布时间】:2020-08-29 02:05:49
【问题描述】:
我正在使用 AWS Amplify 中的 graphql 为新的 DynamoDB 创建我的第一个架构。我注意到许多没有@key 指令来定义主键的示例,例如下面的“Product”:
type Inventory @model
@key(name: "byWarehouseID", fields: ["warehouseID"], queryField: "itemsByWarehouseID")
@key(fields: ["productID", "warehouseID"]) {
productID: ID!
warehouseID: ID!
inventoryAmount: Int!
}
type Product @model {
id: ID!
name: String!
orders: [Order] @connection(keyName: "byProduct", fields: ["id"])
inventories: [Inventory] @connection(fields: ["id"])
}
第一个字段是否自动用作主键(分区键)?
【问题讨论】:
-
你的问题让我意识到这种行为的记录有多么糟糕,我发现的最接近的是 Medium medium.com/@dantasfiles/… 上的这篇文章,它声明它默认为 id 字段,我猜它会创建一个如果它没有'不存在,就像 createdAt 和 updatedAt 一样
-
@danielfranca 这是一篇很有帮助的文章,谢谢!我认为因为这里有几种技术在起作用,所以文档存在差距。无论如何,您似乎已经回答了这个问题,因为在本地示例中检查 build\stacks\{category}.json 确实表明在第一个字段为“messageId”的模型上创建了一个新的“id”键,并且没有
@key符号。请创建一个答案,我会接受。再次感谢!
标签: react-native graphql amazon-dynamodb aws-amplify aws-appsync