如何使用AWS AppSync(DynamoDB)在电子商务应用程序中为特定于用户的定价建模?

时间:2020-08-04 14:31:11

标签: graphql amazon-dynamodb aws-amplify aws-appsync

我需要一些帮助来设计用于电子商务应用程序中特定于用户的定价的数据模型。带有DynamoDB的AWS Amplify / AppSync用于开发。我有第一个可行的解决方案,但是我对GraphQL和DynamoDB还是陌生的,所以我认为必须有更好的方法来做到这一点。我有一个具有约5万条记录的产品模型。实际上,该模型非常简单,并具有两个属性“价格”和“销售价格”。

type Product @model {
  id: ID!
  sku: String!
  price: Float!
  salePrice: Float
  discountPrice: DiscountPrice @connection
}

现在,我希望有特定于用户的价格,理论上每个客户可以有自己的价格。我试图为此创建一个新模型,如下所示:

type DiscountPrice @model @auth(rules: [{ allow: owner }]) {
  id: ID!
  minQuantity: Int!
  price: Float!
}

要设置特定于用户的价格,我可以创建一个拥有者属性为客户的用户ID的记录。如果我查询的是DiscountPrice记录的所有者,则此方法有效。否则,我将收到“未授权访问Product类型的DiscountPrice”错误。

查询:

query getProduct {
  getProduct(id: "xxx") {
    id
    sku
    price
    salePrice
    discountPrice {
      minQuantity
      price
    }
  }
}

建模这种功能的正确方法吗?如果没有记录,或者如何选择另一种最佳方法,该如何解决该错误?

预先感谢

0 个答案:

没有答案