PPL: Pertemuan 14

 

Desain Database




Deskripsi Databse Design Instagram

Desain basis data Instagram mendukung fitur-fitur inti aplikasi seperti manajemen pengguna, penyimpanan konten, interaksi pengguna, dan hubungan sosial. Tabel-tabel utama meliputi `user_accounts` untuk informasi pengguna, `posts` untuk konten unggahan, `comments` dan `likes` untuk interaksi sosial, serta `followers_following` untuk jaringan sosial. Selain itu, tabel `comments_posts` dan `hashtags_comments` mengelola hubungan antara komentar, postingan, dan tagar. Desain ini harus sangat terukur, efisien, dan andal untuk menangani miliaran pengguna dan transaksi per detik, memastikan pengalaman pengguna yang optimal di platform media sosial yang dinamis ini.


1. Tabel `user_account`

Tabel ini menyimpan informasi dasar tentang pengguna:

  • id: Kunci utama untuk setiap pengguna.
  • email: Alamat email pengguna untuk kontak dan login.
  • password: Kata sandi yang di-hash dengan aman untuk otentikasi pengguna.
  • username: Nama tampilan pengguna.

2. Tabel `posts`

Tabel ini menyimpan informasi tentang postingan:

  • id: Kunci utama untuk setiap postingan.
  • user_id: Kunci asing yang mengidentifikasi pengguna yang membuat postingan.
  • photo: BLOB yang menyimpan foto atau video.
  • date: Stempel waktu saat postingan dibuat.
  • location: Lokasi tempat postingan dibuat.
3. Tabel `comments`

Tabel ini menyimpan komentar pada postingan:

  • id: Kunci utama untuk setiap komentar.
  • user_id: Kunci asing yang mengidentifikasi pengguna yang memberikan komentar.
  • comment: Isi teks komentar.
  • date: Stempel waktu ketika komentar dibuat.
4. Tabel `likes`

Tabel ini menyimpan informasi tentang suka pada postingan:

  • photo_id: Kunci asing yang mengidentifikasi postingan yang disukai.
  • user_id: Kunci asing yang mengidentifikasi pengguna yang menyukai postingan.

5. Tabel `followers_following`

Tabel ini menyimpan hubungan pengikut antara pengguna:

  • user_id: Kunci utama yang mengidentifikasi pengguna yang diikuti.
  • follower_id: Kunci utama yang mengidentifikasi pengguna yang mengikuti.
  • can_follow: Status mengikuti (NULL - pending, 0 - blocked, 1 - following).
6. Tabel `comments_posts`

Tabel ini menghubungkan komentar dengan postingan:

  • comment_id: Kunci utama yang mengidentifikasi komentar.
  • post_id: Kunci utama yang mengidentifikasi postingan terkait.
7. Tabel `hashtags_comments`

Tabel ini menghubungkan hashtag dengan komentar:

  • hashtag: Tagar teks.
  • comment_id: Kunci utama yang mengidentifikasi komentar terkait.

Hubungan antar entitas untuk design database instagram,

1. Hubungan One-to-Many antara Pengguna dan Postingan:
  • Satu pengguna dapat membuat banyak postingan.
  • Setiap postingan dibuat oleh satu pengguna.
  • Oleh karena itu, hubungan antara user_accounts dan posts adalah hubungan One-to-Many.
2. Hubungan One-to-Many antara Postingan dan Komentar:
  • Satu postingan bisa mendapat banyak komentar.
  • Setiap komentar dikaitkan dengan satu postingan.
  • Oleh karena itu, hubungan antara posts dan comments adalah hubungan One-to-Many.
3. Hubungan One-to-Many antara Postingan dan Suka:
  • Satu postingan bisa mendapat banyak suka.
  • Setiap suka dikaitkan dengan satu postingan.
  • Oleh karena itu, hubungan antara posts dan likes adalah hubungan One-to-Many.
4. Hubungan One-to-Many antara Pengguna dan Komentar:
  • Satu pengguna dapat membuat banyak komentar.
  • Setiap komentar dibuat oleh satu pengguna.
  • Oleh karena itu, hubungan antara user_accounts dan comments adalah hubungan One-to-Many.
5. Hubungan One-to-Many antara Pengguna dan Suka:
  • Satu pengguna dapat menyukai beberapa postingan.
  • Setiap suka dibuat oleh satu pengguna.
  • Oleh karena itu, hubungan antara user_accounts dan likes adalah hubungan One-to-Many.
6. Hubungan Many-to-Many antara Pengguna dan Pengikut:
  • Satu pengguna dapat mengikuti beberapa pengguna lainnya.
  • Satu pengguna dapat diikuti oleh beberapa pengguna lainnya.
  • Oleh karena itu, hubungan antara user_accounts dan followers_following adalah hubungan Many-to-Many.
7. Hubungan One-to-Many antara Komentar dan Hashtag:
  • Satu komentar bisa memiliki banyak hashtag.
  • Setiap hashtag dikaitkan dengan satu komentar.
  • Oleh karena itu, hubungan antara comments dan hashtags_comments adalah hubungan One-to-Many.
8. Hubungan One-to-Many antara Komentar dan Postingan:
  • Satu postingan bisa memiliki banyak komentar.
  • Setiap komentar dikaitkan dengan satu postingan.
  • Oleh karena itu, hubungan antara comments dan comments_posts adalah hubungan One-to-Many.

Berikut adalah representasi singkatnya:

  • Pengguna dan Postingan: One-to-Many
  • Postingan dan Komentar: One-to-Many
  • Postingan dan Suka: One-to-Many
  • Pengguna dan Komentar: One-to-Many
  • Pengguna dan Suka: One-to-Many
  • Pengguna dan Pengikut: Many-to-Many
  • Komentar dan Hashtag: One-to-Many
  • Komentar dan Postingan: One-to-Many









Comments

Popular posts from this blog

PPL: Pertemuan 7

ETS PPL