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
danposts
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
dancomments
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
danlikes
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
dancomments
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
danlikes
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
danfollowers_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
danhashtags_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
dancomments_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
Post a Comment