Frågan är, en användare kan ha en lista över vänner. Med tanke på en användare vill vi få alla hans/hennes vänner (namn + online/offlinestatus). Hur gör vi detta i DynamoDB?
Först måste du tilldela ett användar-id för varje användare. Det kommer att vara den unika identifieraren för den användaren, med andra ord en pekare.
Du kan använda en Hash-Range-tabell för att lagra vänskapsdata. Både hash-nyckeln och range-nyckeln i denna tabell kommer att vara user_id. I DynamoDB kan varje hash-nyckel ha flera intervallnycklar. Hashnyckeln kommer att vara en användare och vi kan lagra alla hennes vänners användar-id i intervallnyckeln.
antar att user_1 är vän med user_2 och user_3
"Friendship table in DynamoDB"
HashKey RangeKey
user_1 user_2
user_1 user_3
user_2 user_1
user_3 user_1
Du kan ha en annan tabell som lagrar användarinformation
"User table in DynamoDB"
HashKey name isLoggedin
user_1 J true
user_2 swaggyp false
user_3 furion false
Nu vill du skaffa user_1s vän. Du kan göra en DynamoDB-fråga med hash_key lika med user_1. I exemplet ovan får du 2 rader:
(användare_1, användare_2) (användare_1, användare_3).
Nu vet du att user_2 och user_3 är användare_1s vänner. Du kan använda Använd tabellen för att få user_2 och user_3s onlinestatus.