У меня есть модель GraphQL, подобная следующей.То, что я в основном хочу, это чтобы Фото было связано либо с Производителем, либо с Продуктом.Поэтому я подумал, что, не вводя восклицательный знак (!) На товар / производителя на объекте Фото, я смогу получить этот эффект.
Я был не прав.Amplify создал глобальный индекс для photoPorductId, поэтому я не могу оставить его пустым, поскольку 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.Есть ли лучшая практика, чтобы предложить для обработки таких случаев, как это?