Как мне обрабатывать соединения в модели AppSync / GraphQL - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть модель 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.Есть ли лучшая практика, чтобы предложить для обработки таких случаев, как это?

...