Desain Database

 Nama : Muhamad Faiz Fernanda

 NRP   : 5025211186

 Kelas  : PPL-A


Design Basis Data


Desain Basis Data adalah serangkaian langkah yang digunakan untuk merancang, mengembangkan, mengimplementasikan, dan memelihara sistem manajemen data perusahaan. Basis data yang dirancang dengan baik akan mudah dikelola, meningkatkan konsistensi data, dan mengurangi biaya ruang penyimpanan. Desainer database bertanggung jawab menentukan jenis data yang perlu disimpan dan bagaimana elemen-elemen data tersebut saling berhubungan. Dengan informasi ini, mereka dapat menciptakan model database yang sesuai. Sistem manajemen basis data kemudian mengatur data tersebut sesuai dengan model yang telah dibuat. Proses desain database mencakup pengklasifikasian data dan identifikasi hubungan antar data. Representasi teoritis dari data ini disebut ontologi, yang merupakan dasar dari teori desain database.

Desain Basis Data Facebook





1. Tabel user
Tabel ini menyimpan informasi mengenai pengguna aplikasi.

Kolom:
  • ID: Primary key, unik untuk setiap pengguna.
  • first_name: Nama depan pengguna.
  • last_name: Nama belakang pengguna.
  • profile_name: Nama profil atau username pengguna.
  • signup_date: Tanggal pengguna mendaftar di aplikasi.
  • email: Alamat email pengguna.
  • password: Kata sandi pengguna.
2. Tabel friendship
Tabel ini mencatat hubungan pertemanan antar pengguna.

Kolom:
  • user_id: Foreign key yang mengacu ke user.ID, menunjukkan pengguna yang berteman.
  • friend_id: Foreign key yang mengacu ke user.ID, menunjukkan teman dari pengguna tersebut.
  • status: Status pertemanan (misalnya, pending, accepted, blocked).
3. Tabel post
Tabel ini menyimpan informasi mengenai setiap kiriman yang dibuat oleh pengguna.

Kolom:
  • ID: Primary key, unik untuk setiap kiriman.
  • created_by_user_id: Foreign key yang mengacu ke user.ID, menunjukkan siapa yang membuat kiriman.
  • created_datetime: Tanggal dan waktu ketika kiriman dibuat.
  • content: Teks atau deskripsi kiriman.
  • privacy: Pengaturan privasi kiriman (misalnya, public, friends only).
4. Tabel post_media
Tabel ini menyimpan informasi mengenai media yang terkait dengan kiriman.

Kolom:
  • ID: Primary key, unik untuk setiap media.
  • post_id: Foreign key yang mengacu ke post.ID, menunjukkan kiriman yang terkait dengan media ini.
  • media_file: Nama file atau path media.
  • media_type: Jenis media (misalnya, foto, video).
5. Tabel reaction
Tabel ini menyimpan informasi mengenai reaksi pengguna terhadap kiriman (misalnya like).

Kolom:
  • user_id: Foreign key yang mengacu ke user.ID, menunjukkan siapa yang memberikan reaksi.
  • post_id: Foreign key yang mengacu ke post.ID, menunjukkan kiriman yang mendapatkan reaksi.
  • reaction_type: Jenis reaksi (misalnya, like, love, haha, wow, sad, angry).
6. Tabel comment
Tabel ini menyimpan komentar yang dibuat oleh pengguna pada kiriman.

Kolom:
  • ID: Primary key, unik untuk setiap komentar.
  • created_by_user_id: Foreign key yang mengacu ke user.ID, menunjukkan siapa yang membuat komentar.
  • post_id: Foreign key yang mengacu ke post.ID, menunjukkan kiriman yang dikomentari.
  • created_datetime: Tanggal dan waktu ketika komentar dibuat.
  • comment: Teks komentar.
  • comment_replied_to_id: Foreign key yang mengacu ke comment.ID, menunjukkan komentar yang dibalas (jika ada).
7. Tabel group
Tabel ini menyimpan informasi mengenai grup yang dibuat di aplikasi.

Kolom:
  • ID: Primary key, unik untuk setiap grup.
  • group_name: Nama grup.
  • created_by_user_id: Foreign key yang mengacu ke user.ID, menunjukkan siapa yang membuat grup.
  • created_date: Tanggal grup dibuat.
  • description: Deskripsi grup.
8. Tabel group_member
Tabel ini mencatat keanggotaan pengguna dalam grup.

Kolom:
  • group_id: Foreign key yang mengacu ke group.ID, menunjukkan grup yang diikuti.
  • user_id: Foreign key yang mengacu ke user.ID, menunjukkan pengguna yang menjadi anggota grup.
  • joined_date: Tanggal pengguna bergabung dengan grup.
  • role: Peran pengguna dalam grup (misalnya, member, admin).
9. Tabel event
Tabel ini menyimpan informasi mengenai acara yang dibuat di aplikasi.

Kolom:
  • ID: Primary key, unik untuk setiap acara.
  • event_name: Nama acara.
  • created_by_user_id: Foreign key yang mengacu ke user.ID, menunjukkan siapa yang membuat acara.
  • event_date: Tanggal acara.
  • location: Lokasi acara.
  • description: Deskripsi acara.
10. Tabel event_attendee
Tabel ini mencatat kehadiran pengguna pada acara.

Kolom:
  • event_id: Foreign key yang mengacu ke event.ID, menunjukkan acara yang dihadiri.
  • user_id: Foreign key yang mengacu ke user.ID, menunjukkan pengguna yang menghadiri acara.
  • status: Status kehadiran (misalnya, going, interested, not going).
  • Relasi Antar Tabel
  • Tabel user terhubung dengan friendship, post, reaction, comment, group, group_member, event, dan event_attendee melalui foreign key, menunjukkan hubungan pengguna dengan berbagai aktivitas di aplikasi.
  • Tabel post terhubung dengan post_media, reaction, dan comment melalui foreign key, menunjukkan hubungan kiriman dengan media yang terkait, reaksi, dan komentar.
  • Tabel group terhubung dengan group_member melalui foreign key, menunjukkan hubungan grup dengan anggotanya.
  • Tabel event terhubung dengan event_attendee melalui foreign key, menunjukkan hubungan acara dengan peserta yang hadir.
Desain basis data ini mencakup berbagai aspek dari sebuah aplikasi seperti Facebook, memungkinkan penyimpanan dan pengelolaan informasi pengguna, kiriman, media, interaksi, grup, acara, dan berbagai fitur lain yang biasanya ada di aplikasi sejenis.

Komentar

Postingan populer dari blog ini

Evaluasi Tengah Semester

Low Level Design

Evaluasi Akhir Semester