Мне нужно сделать запрос после любимых постов моих пользователей. С помощью этого запроса они смогут увидеть сообщение с его информацией, такой как заголовок и лайки. Учитывая, что значение некоторых атрибутов, таких как всего лайков , может со временем меняться, я не могу добавить эти значения в набор данных favourite . Если бы я сделал это, мне пришлось бы обновлять каждый любимый набор данных, когда кому-то нравится публикация, чтобы держать их в курсе.
Это привело меня к решению, что я не добавляю эту информацию (например, общее количество лайков) в избранную запись и просто добавьте дополнительный распознаватель для атрибута post. Это может выглядеть так:
type Post {
pid: ID!
title: String!
content: String!
likes: Int // <-- An attribute which I need to show while displaying favorites
}
type Favorite{
fid: ID!
pid: String!
...
post: Post! // <-- This has an own resolver
}
Атрибут Post имеет свой собственный дополнительный преобразователь, присоединенный через AWS AppSync, который может выглядеть следующим образом
{
"version": "2018-05-29",
"operation": "GetItem",
"key": {
"id": $util.dynamodb.toDynamoDBJson($ctx.source.pid),
}
}
Если пользовательбудет запрашивать его собственные фавориты, это будет стоить вдвое больше операции чтения? Поскольку для этого требуется два GetItem Операция для каждого в результате
Пример: запрос избранных с пределом 10 обойдется в 20 операций чтения (10 для простых избранных данных (fid иpid) и 10 для отправки данных через дополнительный преобразователь.
Или DynamoDB объединяет их в одну операцию чтения в фоновом режиме?
Кроме того это приемлемое решение(или обычный подход) для этой проблемы? Используете ли вы эту технику? Или это будет очень дорого при масштабировании?
EDIT : я использую только одну таблицу, поэтому каждый набор данных находится вэто.