Saya telah melakukan banyak hal dengan database relasional, dan sedikit dengan database NoSQL (agar Anda tahu dari mana saya berasal). IMHO, database NoSQL paling cocok untuk skenario di mana salah satu atau lebih benar:
- Data pada dasarnya datar (tidak banyak relasi, hampir seperti file datar lama)
- Ada rekaman tipe "induk" yang pasti dengan rekaman "anak" yang cukup kecil/cukup sering diakses dengan induknya untuk membenarkan penyematannya tepat di rekaman.
- Anda memerlukan kebebasan untuk menambah/mengisi bidang dengan alasan. Saya suka menganggapnya seperti warisan, di mana setiap item dalam tabel memiliki beberapa kesamaan (ID, Nama), tetapi catatan yang berbeda mungkin memiliki sifat yang berbeda. Misalnya, katalog produk online mungkin memiliki buku, sepeda, dan lagu MP3 di dalamnya. Catatan untuk item "buku" akan memiliki hal-hal seperti ISBN, jumlah halaman, penulis, dll. "Sepeda" mungkin memiliki ukuran dan warna roda, dan "MP3" akan memiliki panjang, artis, genre, dll. Anda tidak akan pernah mendapatkan semua hal itu di tabel "item" di anRDS tanpa kelebihan beban yang serius atau membiarkan bidang kosong. Basis data ANoSQL akan memungkinkan Anda menyimpan semua info itu di tabel, dan hanya untuk item yang membutuhkannya.
Anda pasti dapat membangun skema yang Anda sertakan dengan pertanyaan Anda menggunakan kemampuan pengindeksan Dynamo, tetapi Anda akan mencoba membuat basis data NoSQL bertindak seperti RDS.
Yang mengatakan:Saya sendiri akan mencobanya dengan Dynamo terlebih dahulu sebagai pengalaman belajar. :)