Saya sudah lama bekerja dengan database relasional, dan sekarang saya akan bekerja dengan DynamoDB. Setelah bekerja dengan database relasional, saya kesulitan mendesain beberapa tabel SQL kami saat ini di DynamoDB. Terutama, memutuskan tentang kunci partisi dan pengurutan. Saya akan mencoba menjelaskan dengan sebuah contoh:
Tabel Saat Ini:
Student: StudentId(PK), Email, First name, Last name, Password, SchoolId(FK)
School: SchoolId(PK), Name, Description
Saya berpikir untuk menggabungkan tabel-tabel ini di DynamoDB dan menggunakan SchoolId sebagai Kunci Partisi, StudentId sebagai kunci pengurutan. Namun, saya melihat beberapa contoh serupa menggunakan StudentId sebagai Kunci Partisi.
Dan kemudian saya menyadari, kami menggunakan "nama pengguna" di setiap fungsi login, sehingga aplikasi akan sering menanyakan "nama pengguna" (terkadang dengan kata sandi, atau token autentikasi). Situasi ini membuat saya berpikir tentang; SchoolId sebagai Kunci Partisi dan Nama Pengguna sebagai kunci pengurutan.
Saya memerlukan beberapa ide tentang praktik terbaik dalam kasus tersebut dan beberapa saran untuk memberi saya pemahaman yang lebih baik tentang konsep NoSQL dan DynamoDb.