dibaca 3 menit

Desain Tabel Usulan Pelatihan

Daftar Isi

Untuk membangun database yang mendukung skenario dimana user dapat menginput usulan pelatihan, melihat usulan mereka sendiri, dan admin dapat melihat semua usulan serta melakukan verifikasi, persetujuan, atau penolakan, kita perlu beberapa tabel utama untuk menyimpan data yang relevan. Berikut adalah desain tabel yang saya rekomendasikan:

1. Tabel Users

Tabel ini digunakan untuk menyimpan informasi tentang pengguna, baik itu admin maupun user biasa.

FieldTypeDescription
user_idINTPrimary key, ID unik pengguna
usernameVARCHAR(255)Nama pengguna
passwordVARCHAR(255)Kata sandi pengguna
emailVARCHAR(255)Email pengguna
roleENUM(‘admin’, ‘user’)Peran pengguna dalam sistem

2. Tabel TrainingProposals

Tabel ini menyimpan semua usulan pelatihan yang diajukan oleh user.

FieldTypeDescription
proposal_idINTPrimary key, ID unik usulan
user_idINTForeign key dari tabel Users
titleVARCHAR(255)Judul usulan pelatihan
descriptionTEXTDeskripsi usulan pelatihan
statusENUM(‘submitted’, ‘approved’, ‘rejected’)Status usulan
created_atDATETIMEWaktu usulan dibuat
updated_atDATETIMEWaktu usulan terakhir diupdate

3. Tabel AdminActions

Tabel ini mencatat tindakan yang diambil oleh admin terhadap usulan pelatihan.

FieldTypeDescription
action_idINTPrimary key, ID unik aksi
proposal_idINTForeign key dari tabel TrainingProposals
admin_idINTID admin yang bertindak
action_typeENUM(‘approve’, ‘reject’)Tipe aksi yang diambil
action_dateDATETIMETanggal aksi diambil
noteTEXTCatatan dari admin

Relasi antar Tabel

  • Tabel Users berelasi dengan TrainingProposals melalui user_id untuk mengidentifikasi siapa yang mengajukan usulan.
  • Tabel TrainingProposals berelasi dengan AdminActions melalui proposal_id untuk melacak keputusan yang diambil oleh admin terhadap usulan pelatihan tersebut.

Dengan desain ini, sistem dapat mendukung fungsionalitas dimana user dapat melihat hanya usulan mereka sendiri, sedangkan admin dapat melihat semua usulan dan mengambil keputusan terkait dengan mereka. Relasi yang dibuat juga memastikan bahwa semua informasi penting terkait usulan dan tindakan yang diambil terhadapnya tersimpan dengan baik dalam database.