如何处理AppSync / GraphQL模型中的连接

时间:2019-04-18 11:01:00

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

我有一个类似下面的GraphQL模型。 我基本上想要的是将照片与生产者或产品相关联。 因此,我认为通过在Photo实体的产品/生产者处不输入任何感叹号(!),我就能实现这种效果。

我错了。 Amplify为photoPorductId创建了一个globl索引,因此由于DynamoDB返回错误,因此我无法将其保留为空。

type Producer @model @auth(rules: [{ allow: owner }]) {
    id: ID!
    ...
    products: [Product] @connection(name: "Products")
    photos: [Photo] @connection(name: "ProducerPhotos")
}

type Photo @model @auth(rules: [{ allow: owner }]) {
    id: ID!
    title: String
    format: String
    ...
    product: Product @connection(name: "Photos")
    producer: Producer @connection(name: "ProducerPhotos")
}

type Product @model @auth(rules: [{ allow: owner }]) {
    id: ID!
    photos: [Photo] @connection(name: "Photos")
    name: String!
    ....
    producer: Producer @connection(name: "Products")
}

我在这里看到的解决方法是创建相同的表ProductPhotos和ProducerPhotos。 有什么最佳实践建议可用于处理此类情况?

0 个答案:

没有答案