Как вы упомянули, в документации DynamoDB говорится, что «большинству хорошо разработанных приложений требуется только одна таблица». Это справедливо для многих приложений, когда разработчики с течением времени изучили свои шаблоны доступа к данным, определились с моделью данных и имеют определенные требования к масштабу, которые необходимо оптимизировать. Многие разработчики не имеют такого уровня понимания своего приложения со дня 1 или обязательно одинаковых требований. Кроме того, некоторые из пунктов, упомянутых в презентациях по разработке единой таблицы (например, компромисс между затратами на хранение и вычислениями), могут быть субъективными в зависимости от вашего приложения.
Когда вы создаете новое приложение или не знаете свой шаблон доступа к данным, преимущества использования шаблона проектирования с одной таблицей приводят к уменьшению результатов, а стратегия использования нескольких таблиц гораздо более гибкая.
AWS ampify - это продуманная клиентская среда, предоставляющая разумные настройки по умолчанию для разработчиков с разным уровнем масштабирования и сложности, поэтому она приняла стратегию использования нескольких таблиц при использовании преобразователя @model в его наиболее простой форме. По мере развития ваших требований вы можете дополнять этот дизайн, используя дополнительные функции Transformer, такие как @ key (для создания индексов отдельных таблиц и составных ключей) или даже полнотекстовый поиск и потоковую передачу из DynamoDB с @ поиск .
Мы признаем, что крупномасштабные или зрелые приложения могут выиграть от использования единого стола. Переход от нескольких таблиц к одной таблице, вероятно, является единовременной операцией «слияния», после этапа создания прототипа и после того, как разработчик понял шаблоны доступа к данным. На самом деле не существует подхода «один размер подходит всем», поэтому Amplify GraphQL Transformer предоставляет вам разные уровни гибкости в зависимости от того, в каком месте находится ваше приложение в его развитии.
Как Луис упомянул в другом ответе: AWS AppSync поддерживает любой тип структуры таблицы независимо от шаблона генерации GraphQL Transformer. Даже если у вас есть несколько таблиц, вы можете легко реализовать реляционные шаблоны GraphQL в одном клиентском запросе либо с помощью дизайна схемы , вложенных преобразователей , либо даже с помощью преобразователей конвейера .
(этот ответ был отредактирован с помощью Ричард )