Otázkou je, že uživatel může mít seznam přátel. Vzhledem k uživateli chceme získat všechny jeho přátele (jméno + stav online/offline). Jak to uděláme v DynamoDB?
Nejprve musíte každému uživateli přiřadit user_id. To bude jedinečný identifikátor daného uživatele, jinými slovy ukazatel.
K uložení dat přátelství můžete použít tabulku Hash-Range. Klíč hash i klíč rozsahu této tabulky bude user_id. V DynamoDB může mít každý hash klíč více klíčů rozsahu. Klíč hash bude jeden uživatel a do klíče rozsahu můžeme uložit ID uživatele všech jejích přátel.
za předpokladu, že user_1 je přítel s user_2 a user_3
"Friendship table in DynamoDB"
HashKey RangeKey
user_1 user_2
user_1 user_3
user_2 user_1
user_3 user_1
Můžete mít další tabulku, která ukládá informace o uživateli
"User table in DynamoDB"
HashKey name isLoggedin
user_1 J true
user_2 swaggyp false
user_3 furion false
Nyní chcete získat přítele uživatele user_1. Můžete provést dotaz DynamoDB s hash_key rovným user_1. Ve výše uvedeném příkladu získáte 2 řádky:
(uživatel_1, uživatel_2) (uživatel_1, uživatel_3).
Nyní víte, že user_2 a user_3 jsou přátelé uživatele user_1. Můžete použít tabulku User the k získání online stavu uživatelů user_2 a user_3.