De vraag is of een gebruiker een lijst met vrienden kan hebben. Gegeven een gebruiker, willen we al zijn/haar vrienden krijgen (naam + online/offline status). Hoe doen we dit in DynamoDB?
Eerst moet je voor elke gebruiker een user_id toewijzen. Dat is de unieke identificatie voor die gebruiker, met andere woorden, een aanwijzer.
U kunt een Hash-Range-tabel gebruiken om de vriendschapsgegevens op te slaan. Zowel de hash-sleutel als de bereiksleutel van deze tabel is user_id. In DynamoDB kan elke hash-sleutel meerdere bereiksleutels hebben. De hash-sleutel is één gebruiker en we kunnen alle gebruikers-ID's van haar vrienden opslaan in de bereiksleutel.
ervan uitgaande dat user_1 bevriend is met user_2 en user_3
"Friendship table in DynamoDB"
HashKey RangeKey
user_1 user_2
user_1 user_3
user_2 user_1
user_3 user_1
U kunt een andere tabel hebben waarin gebruikersinformatie is opgeslagen
"User table in DynamoDB"
HashKey name isLoggedin
user_1 J true
user_2 swaggyp false
user_3 furion false
Nu wil je de vriend van user_1 krijgen. U kunt een DynamoDB-query uitvoeren met hash_key gelijk aan user_1. In het bovenstaande voorbeeld krijgt u 2 rijen:
(gebruiker_1, gebruiker_2) (uiser_1, gebruiker_3).
Nu weet je dat user_2 en user_3 de vrienden van user_1 zijn. U kunt Gebruiker de tabel gebruiken om de online status van gebruiker_2 en gebruiker_3 te krijgen.