Я изучаю, использовать ли AWS DynamoDb или Azure DocumentDb или облако Google для цены и простоты для моего приложения, и мне интересно, какой лучший подход подходит для типичной схемы приглашения.Моделирование схемы приглашения со встроенными коллекциями с dynamodb или documentemntdb
инвайт имеет
- USERID: ключ (который создал приглашение)
- GameID: ключ
- invitationList: коллекция UserIds
Запросы я бы бег
- Получить приглашения, где userId == я
- Get приглашает где мой идент в invitationList
В Монго, я бы просто установить индекс на встроенном invitationList, и в SQL я бы создал присоединиться таблицу GameID и пригласил UserIds ,
Использование dynamodb или documentdb, могу ли я сделать это в одной «таблице», или мне нужно будет создать вторую денормализованную таблицу, в которой есть приглашенный пользовательский указатель на строку с набором приглашенныхGameIds?
например.
Вторичный стол с
- InvitedUserId: ключевые
- GameIds: Коллекция
будет ли это предложение ARRAY_CONTAINS эффективным, поскольку оно будет использовать индекс - или ему придется сканировать всю таблицу? – MonkeyBonkey
ARRAY_CONTAINS будет использовать индекс, чтобы он был эффективным. Это основная причина моего изменения в том, что предлагает hslriksen. –
- все встроенные массивы, индексированные по умолчанию в documentdb, или они должны быть явно заданы? – MonkeyBonkey