Tugas 10 - Desain Database

Nama: Sekar Ambar Arum
NRP: 5025211041
PPL-A

Desain Database

Berikut adalah desain basis data yang lebih terperinci untuk aplikasi seperti Instagram. Desain ini mencakup tabel-tabel utama dan hubungan antara mereka:

Tabel users:

Menyimpan informasi pengguna.

Kolom Tipe Data Deskripsi ----------------------------------------------------------- user_id INT Primary key, auto-increment username VARCHAR Nama pengguna, unik email 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:

Menyimpan informasi postingan pengguna.

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:

Menyimpan komentar pengguna pada postingan.

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:

Menyimpan informasi like yang diberikan oleh pengguna pada postingan.

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:

Menyimpan informasi pengguna yang diikuti oleh pengguna lain.

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:

Menyimpan pesan yang dikirim oleh pengguna melalui fitur Direct Messaging.

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:

Menyimpan notifikasi yang diterima oleh pengguna.


Kolom Tipe Data Deskripsi ----------------------------------------------------------- notification_id INT Primary key, auto-increment user_id INT Foreign key ke tabel `users` type VARCHAR Tipe notifikasi related_id INT ID terkait created_at TIMESTAMP Waktu notifikasi dibuat read_at TIMESTAMP Waktu notifikasi dibaca

Relasi Antar Tabel:

  • users ke posts: One-to-Many (Seorang pengguna dapat memiliki banyak postingan)
  • users ke comments: One-to-Many (Seorang pengguna dapat memiliki banyak komentar)
  • posts ke comments: One-to-Many (Satu postingan dapat memiliki banyak komentar)
  • users ke likes: One-to-Many (Seorang pengguna dapat memberikan banyak like)
  • posts ke likes: One-to-Many (Satu postingan dapat menerima banyak like)
  • users ke follows: Many-to-Many (Seorang pengguna dapat mengikuti banyak pengguna lain, dan diikuti oleh banyak pengguna lain)
  • users ke messages: One-to-Many (Seorang pengguna dapat mengirim banyak pesan)
  • users ke notifications: One-to-Many (Seorang pengguna dapat menerima banyak notifikasi)

Desain ini mencakup tabel-tabel utama dan hubungan antar tabel untuk mendukung fungsi-fungsi utama dari aplikasi seperti Instagram. Desain ini dapat disesuaikan lebih lanjut sesuai dengan kebutuhan spesifik aplikasi.

Komentar

Postingan populer dari blog ini

Tugas 1 - Prinsip Desain Software

Tugas 3 - Software Architecture

Tugas 5 - Low Level Design dan High Level Design