sql >> Databáze >  >> RDS >> Mysql

Amazon DynamoDB - Navrhování stolů na základě přátelství

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.



  1. Kdy použít NULL v tabulkách MySQL

  2. syntaxe pro jeden řádek MERGE / upsert v SQL Server

  3. Funkce MySQL CRC32() – příklady

  4. Aktualizujte své heslo PostgreSQL v Linuxu