Tugas Pertemuan 14 PPL - Desain Database
Nama | Akmal Sulthon Fathulloh |
---|---|
NRP | 5025211047 |
Kelas | PPL - A |
Desain Basis Data adalah kumpulan proses yang memfasilitasi perancangan, pengembangan, implementasi, dan pemeliharaan sistem manajemen data perusahaan. Basis data yang dirancang dengan benar mudah dipelihara, meningkatkan konsistensi data, dan hemat biaya dalam hal ruang penyimpanan disk. Desainer database memutuskan bagaimana elemen data berkorelasi dan data apa yang harus disimpan. Pada pertemuan ke-14 ini, kita diminta untuk membuat database untuk aplikasi social media foto sharing - Instagram
Desain Basis Data
Basis data Instagram harus dirancang untuk menyimpan data pengguna, konten, interaksi pengguna, dan informasi lainnya. Berikut adalah beberapa tabel yang mungkin diperlukan dalam desain basis data Instagram:
Tabel users
Tabel users berisi informasi pengguna seperti nama pengguna, email, kata sandi, nama lengkap, biografi, dan gambar profil. Tabel ini juga mencatat waktu pembuatan akun dan pembaruan terakhir.
Kolom | Tipe Data | Deskripsi |
---|---|---|
user_id | INT | Primary key, auto-increment |
username | VARCHAR | Nama pengguna, unik |
VARCHAR | Email pengguna, unik | |
password | VARCHAR | Kata sandi pengguna, terenkripsi |
full_name | VARCHAR | Nama lengkap pengguna |
bio | VARCHAR | Biografi pengguna |
profile_image | VARCHAR | URL gambar profil |
created_at | TIMESTAMP | Waktu pembuatan akun |
updated_at | TIMESTAMP | Waktu pembaruan terakhir |
Tabel posts
Tabel posts berisi informasi postingan pengguna seperti gambar, deskripsi, lokasi, dan waktu unggah. Tabel ini juga mencatat waktu pembaruan terakhir.
Kolom | Tipe Data | Deskripsi |
---|---|---|
post_id | INT | Primary key, auto-increment |
user_id | INT | Foreign key ke tabel users |
image_url | VARCHAR | URL gambar postingan |
caption | TEXT | Deskripsi postingan |
location | VARCHAR | Lokasi postingan |
created_at | TIMESTAMP | Waktu unggah postingan |
updated_at | TIMESTAMP | Waktu pembaruan terakhir |
Tabel comments
Tabel comments berisi komentar pengguna pada postingan, termasuk ID postingan, ID pengguna, isi komentar, dan waktu pembuatan komentar. Tabel ini juga mencatat waktu pembaruan terakhir.
Kolom | Tipe Data | Deskripsi |
---|---|---|
comment_id | INT | Primary key, auto-increment |
post_id | INT | Foreign key ke tabel posts |
user_id | INT | Foreign key ke tabel users |
comment | TEXT | Isi komentar |
created_at | TIMESTAMP | Waktu pembuatan komentar |
updated_at | TIMESTAMP | Waktu pembaruan terakhir |
Tabel likes
Tabel likes berisi informasi like yang diberikan oleh pengguna pada postingan. Tabel ini mencatat ID postingan, ID pengguna, dan waktu like diberikan.
Kolom | Tipe Data | Deskripsi |
---|---|---|
like_id | INT | Primary key, auto-increment |
post_id | INT | Foreign key ke tabel posts |
user_id | INT | Foreign key ke tabel users |
created_at | TIMESTAMP | Waktu like diberikan |
Tabel follows
Tabel follows berisi informasi pengguna yang diikuti oleh pengguna lain. Tabel ini mencatat ID pengikut, ID yang diikuti, dan waktu mulai mengikuti.
Kolom | Tipe Data | Deskripsi |
---|---|---|
follow_id | INT | Primary key, auto-increment |
follower_id | INT | Foreign key ke tabel users (pengikut) |
following_id | INT | Foreign key ke tabel users (yang diikuti) |
created_at | TIMESTAMP | Waktu pengguna mulai mengikuti pengguna lain |
Tabel messages
Tabel messages berisi pesan yang dikirim oleh pengguna melalui fitur Direct Messaging. Tabel ini mencatat ID pesan, ID pengirim, ID penerima, isi pesan, dan waktu pengiriman pesan.
Kolom | Tipe Data | Deskripsi |
---|---|---|
message_id | INT | Primary key, auto-increment |
sender_id | INT | Foreign key ke tabel users (pengirim) |
receiver_id | INT | Foreign key ke tabel users (penerima) |
content | TEXT | Isi pesan |
created_at | TIMESTAMP | Waktu pengiriman pesan |
Tabel notifications
Tabel notifications berisi notifikasi yang diterima oleh pengguna, seperti like, komentar, atau follow. Tabel ini mencatat ID notifikasi, ID pengguna, tipe notifikasi, ID terkait, waktu notifikasi dibuat, dan waktu notifikasi dibaca.
Kolom | Tipe Data | Deskripsi |
---|---|---|
notification_id | INT | Primary key, auto-increment |
user_id | INT | Foreign key ke tabel users |
type | VARCHAR | Tipe notifikasi (like, komentar, follow, dll.) |
related_id | INT | ID sumber notifikasi (post_id, user_id, dll.) |
created_at | TIMESTAMP | Waktu notifikasi dibuat |
read_at | TIMESTAMP | Waktu notifikasi dibaca |
Desain basis data di atas adalah kerangka utama basis data dari Instagram yang bisa dikembangkan lebih lanjut sesuai kebutuhan aplikasi. Misalnya, kita bisa menambahkan tabel untuk fitur tambahan seperti cerita (stories), tagar (hashtags), atau penyimpanan media tambahan (video, IGTV).
Berikut adalah implementasi basis data Instagram menggunakan MySQL:
Komentar
Posting Komentar