GraphQL DynamoDB 架构中的默认主键?

Rob*_*wis 3 amazon-dynamodb graphql react-native aws-appsync aws-amplify

我正在 AWS Amplify 中使用 graphql 为新的 DynamoDB 创建我的第一个架构。我注意到许多示例中没有 @key 指令来定义主键,例如下面的“产品”:

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"])
}
Run Code Online (Sandbox Code Playgroud)

第一个字段是否自动用作主键(分区键)?

dan*_*nca 5

你的问题让我意识到这种行为的记录有多差。我找到的最接近的是这篇文章:https : //medium.com/@dantasfiles/exploring-the-backend-specifications-generated-by-aws-amplify-api-57be2a349fa9

如果您没有指定一个键 Amplify/AppSync 为您做这id件事,创建一个字段就像其他字段一样(即:createdAtupdatedAt

因为没有指定默认的 @key 注释,AccountRepresentative 表具有默认的 id 分区/哈希键。