Pertanyaannya adalah, pengguna dapat memiliki daftar teman. Mengingat seorang pengguna, kami ingin mendapatkan semua temannya (nama + status online/offline). Bagaimana kita melakukannya di DynamoDB?
Pertama untuk setiap pengguna, Anda perlu menetapkan user_id. Itu akan menjadi pengidentifikasi unik untuk pengguna itu, dengan kata lain, sebuah pointer.
Anda dapat menggunakan tabel Hash-Range untuk menyimpan data pertemanan. Baik kunci hash dan kunci rentang dari tabel ini akan menjadi user_id. Di DynamoDB, setiap kunci hash dapat memiliki beberapa kunci rentang. Kunci hash akan menjadi satu pengguna dan kami dapat menyimpan semua id pengguna teman-temannya di kunci rentang.
dengan asumsi user_1 berteman dengan user_2 dan user_3
"Friendship table in DynamoDB"
HashKey RangeKey
user_1 user_2
user_1 user_3
user_2 user_1
user_3 user_1
Anda dapat memiliki tabel lain yang menyimpan informasi Pengguna
"User table in DynamoDB"
HashKey name isLoggedin
user_1 J true
user_2 swaggyp false
user_3 furion false
Sekarang Anda ingin mendapatkan teman user_1. Anda dapat melakukan kueri DynamoDB dengan hash_key sama dengan user_1. Pada contoh di atas, Anda akan mendapatkan 2 baris:
(pengguna_1, pengguna_2) (uiser_1, pengguna_3).
Sekarang Anda tahu bahwa pengguna_2 dan pengguna_3 adalah teman pengguna_1. Anda dapat menggunakan tabel Pengguna untuk mendapatkan status online pengguna_2 dan pengguna_3.