TUGAS PERTEMUAN 14 PPL - DESAIN DATABASE
Nama: Arif Nugraha Santosa
NRP: 5025211048
Kelas: Perancangan Perangkat Lunak (A) `
Tugas Pertemuan 14 PPL - Desain Database
Desain Database untuk Sistem Instagram
Tabel User
Tabel ini menyimpan data pengguna.
Kolom:
- userId: string (Hash Key) - Pengenal unik untuk setiap pengguna.
- name: string - Nama pengguna.
- emailId: string - Alamat email pengguna.
- creationDateInUtc: long - Tanggal pembuatan akun pengguna dalam format UTC.
Tabel User_Follows
Tabel ini menyimpan data pengguna yang diikuti oleh pengguna lain.
Kolom:
- followingUserId_followerUserId: string (Hash Key) - Kombinasi unik dari ID pengguna yang diikuti (followingUserId) dan ID pengikut (followerUserId) untuk memastikan tidak ada duplikasi.
- followingUserId: string (Range Key) - ID pengguna yang diikuti.
- followerUserId: string - ID pengikut.
- creationDateInUtc: long - Tanggal pengguna mulai mengikuti pengguna lain dalam format UTC.
Tabel User_Uploads
Tabel ini menyimpan informasi mengenai unggahan pengguna.
Kolom:
- uploadId: string (Hash Key) - Pengenal unik untuk setiap unggahan.
- userId: string (Range Key) - ID pengguna yang melakukan unggahan.
- imageLocation: string - Lokasi penyimpanan gambar yang diunggah.
- uploadDateInUtc: long - Tanggal dan waktu unggahan dalam format UTC.
- caption: string - Teks deskripsi untuk unggahan.
Tabel User_Feed
Tabel ini menyimpan informasi mengenai konten yang muncul di beranda pengguna.
Kolom:
- userId: string (Hash Key) - ID pengguna yang memiliki beranda.
- uploadId: string - ID unggahan yang muncul di beranda pengguna.
- creationDateInUtc: long (Range Key) - Tanggal dan waktu unggahan ditambahkan ke beranda pengguna dalam format UTC.
Pemilihan Database
Memilih database yang tepat untuk sistem Instagram sangat penting. Dalam kasus ini, database SQL lebih sesuai karena alasan berikut:
- Data Relasional: Data Instagram memiliki hubungan antar tabel (misalnya, pengguna dengan unggahan, pengguna dengan pengguna yang diikuti).
- Urutan Data: Tabel User_Feed membutuhkan pengurutan berdasarkan waktu untuk menampilkan posting terbaru terlebih dahulu.
- Keawetan Data: Database SQL menawarkan ketahanan data yang kuat untuk mencegah kehilangan data akibat kerusakan.
- Kueri Relasional: SQL mendukung kueri relasional yang memungkinkan pencarian efisien berdasarkan ID pengguna (misalnya, mengambil semua unggahan pengguna atau daftar pengguna
Comments
Post a Comment