我有一个类似下面的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。 有什么最佳实践建议可用于处理此类情况?