Graphql 使用Amplify+;图形ql+;发电机

Graphql 使用Amplify+;图形ql+;发电机,graphql,amazon-dynamodb,aws-amplify,Graphql,Amazon Dynamodb,Aws Amplify,我正在使用AWS的Amplify构建一个小型电子商务项目,使用React作为前端 我想知道如何在模式中写入“产品”和“订单”类型,以便在用户完成购买时能够将productId写入订单表中的产品数组 My schema.graphql文件: type Product @model { id: ID! name: String! price: Int! category: String! images: [String]! } type Order @model { id:

我正在使用AWS的Amplify构建一个小型电子商务项目,使用React作为前端

我想知道如何在模式中写入“产品”和“订单”类型,以便在用户完成购买时能够将productId写入订单表中的产品数组

My schema.graphql文件:

type Product @model {
  id: ID!
  name: String!
  price: Int!
  category: String!
  images: [String]!
}

type Order @model {
  id: ID!
  products: [Product] @connection
}

我的问题是关于最后一行,我是否需要在那里定义[Product]连接,或者我可以使用[String]在一个简单的字符串数组中存储产品id?

第1点:在dynamoDB中,您只需要定义分区键和排序键的数据类型,这些可以是字符串、数字等。对于所有其他属性,你不需要定义任何东西

第2点:dynamoDB设计师更喜欢在每个应用程序中使用一个表,除非没有多个表就无法管理数据。记住这一点,你的桌子可以是这样的


请注意:这里只固定了Idaka分区键和Skaka排序键列,所有其他列可以是每个项目的任何内容。这就是DynamoDB的魅力所在。有关dynamoDB支持的数据类型,请参阅文档。

我同意只有一个表是理想的,也是使用dynamoDB的推荐方法。然而,在Amplify(AWS)文档中的许多示例中,它们使用了多表方法:如果您希望在订单和产品之间建立一对多连接,那么您的模式是正确的