TUGAS PERTEMUAN 14 PPL
Nama : Danno Denis Dhaifullah
NRP : 5025211027
Kelas : PPL - A
DESAIN DATABASE
Desain Database untuk Sistem Instagram
Tabel User
Tabel ini menyimpan data pengguna.
Kolom:
- userId: string (Hash Key) - Identifikasi unik untuk setiap pengguna.
- name: string - Nama lengkap pengguna.
- emailId: string - Alamat email yang terdaftar untuk 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) - Gabungan unik antara ID pengguna yang diikuti (followingUserId) dan ID pengikut (followerUserId) untuk menghindari duplikasi.
- followingUserId: string (Range Key) - ID pengguna yang melakukan tindakan mengikuti.
- followerUserId: string - ID pengguna yang mengikuti.
- creationDateInUtc: long - Tanggal dimulainya pengguna mengikuti pengguna lain, disajikan dalam format UTC.
Tabel User_Uploads
Tabel ini menyimpan informasi mengenai unggahan pengguna.
Kolom:
- uploadId: string (Hash Key) - Identifikasi unik untuk setiap unggahan.
- userId: string (Range Key) - ID pengguna yang melakukan unggahan.
- imageLocation: string - Lokasi tempat gambar yang diunggah disimpan.
- uploadDateInUtc: long - Tanggal dan waktu unggahan dalam format UTC.
- caption: string - Deskripsi teks untuk unggahan.
Tabel User_Feed
Tabel ini menyimpan informasi mengenai konten yang muncul di beranda pengguna.
Kolom:
- userId: string (Hash Key) - Pengenal unik untuk pengguna yang memiliki beranda.
- uploadId: string - Identifikasi unik untuk setiap unggahan yang muncul di beranda pengguna.
- creationDateInUtc: long (Range Key) - Tanggal dan waktu saat unggahan ditambahkan ke beranda pengguna dalam format UTC.
Pemilihan Database
Memilih database yang cocok untuk sistem Instagram sangat penting. Dalam hal ini, database SQL lebih sesuai karena beberapa alasan berikut:
- Data Relasional: Data di Instagram memiliki hubungan yang kompleks antar entitas, seperti hubungan antara pengguna dengan unggahan mereka dan pengguna yang diikuti oleh pengguna lain.
- Urutan Data: Tabel User_Feed memerlukan penyimpanan data yang diurutkan berdasarkan waktu untuk menampilkan posting terbaru terlebih dahulu kepada pengguna.
- Keawetan Data: Database SQL menawarkan tingkat keawetan data yang tinggi, yang sangat penting untuk mencegah kehilangan data karena kegagalan perangkat keras atau kesalahan sistem.
- Kueri Relasional: SQL mendukung kueri relasional yang kompleks dan efisien, memungkinkan aplikasi untuk melakukan operasi seperti pengambilan semua unggahan pengguna atau daftar pengguna berdasarkan kriteria tertentu.
Comments
Post a Comment