Если вы используете базу данных для представления отношений, например, между пользователями и проектами, особенно если у вас много-много связей, вы можете вместо этого использовать базу данных Graph, такую как AWS Neptune.По общему признанию, базы данных Graph могут показаться немного пугающими и теоретическими для начала.
Вы правы, что в DynamoDB вы будете использовать ID пользователя в таблице проектов, а затем искать в таблице Users, чтобы получить пользователейдля данного проекта.Причина, по которой кажется, что это не использует DynamoDB правильно, состоит в том, что DynamoDB по сути является только хранилищем значений ключей.Допустимые значения могут быть довольно сложными, но вы не можете изначально моделировать какие-либо отношения между ключами.
DynamoDB теперь поддерживает транзакции, поэтому вы можете при необходимости запросить несколько таблиц в одной атомарной транзакции.
Если вы обнаружите, что у вас много подобных отношений, вам следует рассмотреть использование реляционного или графическоговместо базы данных.