Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Merancang Database untuk Sistem Rekrutmen

Apakah Anda ingin belajar bagaimana merancang sistem database dan memetakan proses bisnis ke model data? Maka posting ini untuk Anda.

Dalam artikel ini, Anda akan melihat cara mendesain skema database sederhana untuk perusahaan rekrutmen. Setelah membaca tutorial ini, Anda akan dapat memahami bagaimana skema database dirancang untuk aplikasi dunia nyata.

Proses Bisnis Sistem Rekrutmen

Sebelum merancang basis data atau model data apa pun, sangat penting untuk memahami proses bisnis dasar untuk sistem itu. Skema database yang akan kita buat adalah untuk perusahaan atau tim rekrutmen imajiner. Mari kita lihat dulu langkah-langkah yang terlibat dalam perekrutan karyawan baru:

  1. Perusahaan menghubungi agen perekrutan untuk merekrut atas nama mereka. Dalam beberapa kasus, perusahaan merekrut karyawan secara langsung.
  2. Orang yang bertanggung jawab untuk perekrutan memulai proses perekrutan. Proses ini dapat memiliki beberapa langkah, seperti penyaringan awal, tes tertulis, wawancara pertama, wawancara lanjutan, keputusan perekrutan yang sebenarnya, dll.
  3. Setelah perekrut menyetujui proses tertentu – dan ini dapat berubah tergantung pada klien, perusahaan, atau pekerjaan yang bersangkutan – lowongan diiklankan di berbagai platform.
  4. Pelamar mulai melamar pekerjaan.
  5. Pelamar diseleksi dan diundang untuk tes atau wawancara awal.
  6. Pelamar muncul untuk tes/wawancara.
  7. Tes dinilai oleh perekrut. Dalam beberapa kasus, tes diteruskan ke spesialis untuk dinilai.
  8. Wawancara pelamar dinilai oleh satu atau lebih perekrut.
  9. Pelamar dievaluasi berdasarkan tes dan wawancara.
  10. Keputusan perekrutan sudah dibuat.

Skema Basis Data Sistem Perekrutan

Mengingat proses yang disebutkan di atas, skema database kami dibagi menjadi lima bidang subjek:

  • Process
  • Jobs
  • Application, Applicant, and Documents
  • Test and Interviews
  • Recruiters and Application Evaluation

Kami akan meninjau masing-masing area ini secara mendetail, sesuai urutannya. Di bawah ini, Anda dapat melihat seluruh model data.




Proses

Kategori proses berisi informasi yang berkaitan dengan proses perekrutan. Ini berisi tiga tabel:process , step , dan process_step . Kita akan melihat satu per satu.

process tabel menyimpan informasi tentang setiap proses rekrutmen. Setiap proses akan memiliki id khusus, kode, dan description dari proses itu. Kami juga akan memiliki recruiter_id dari orang yang memulai proses.

step tabel berisi informasi tentang langkah-langkah yang diikuti selama proses rekrutmen itu. Setiap langkah memiliki id dan sebuah code nama. Kolom nama dapat memiliki nilai seperti “penyaringan awal”, “tes tertulis”, “wawancara SDM”, dll.

Karena satu proses dapat memiliki beberapa langkah dan satu langkah dapat menjadi bagian dari banyak proses, kita memerlukan tabel pencarian. process_step tabel berisi informasi tentang setiap langkah (dalam step_id ) dan proses miliknya (dalam process_id ). Kami juga memiliki status, yang memberi tahu kami status langkah itu dalam proses itu; ini bisa NULL jika langkahnya belum dimulai. Akhirnya, kami memiliki priority , yang memberi tahu kita perintah mana untuk mengeksekusi langkah-langkah tersebut. Langkah-langkah dengan priority tertinggi nilai akan dieksekusi terlebih dahulu.

Pekerjaan

Selanjutnya kita memiliki Jobs subjek, yang menyimpan semua informasi yang terkait dengan pekerjaan yang kami rekrut. Skema untuk kategori ini terlihat seperti ini:

Mari kita jelaskan masing-masing tabel secara detail.

job_category tabel secara luas menggambarkan jenis pekerjaan. Kita bisa berharap untuk melihat kategori pekerjaan seperti “TI”, “manajemen”, “keuangan”, “pendidikan”, dll.

job_position tabel berisi judul pekerjaan yang sebenarnya. Karena satu jabatan dapat diiklankan untuk beberapa pekerjaan (mis. “Manajer TI”, “Manajer Penjualan”), kami telah membuat tabel terpisah untuk posisi pekerjaan. Kita bisa berharap untuk melihat nilai-nilai seperti “Pemimpin Tim TI”, “Wakil Presiden”, dan “Manajer” di tabel ini.

job_platform tabel mengacu pada media yang digunakan untuk mengiklankan lowongan pekerjaan. Misalnya, pekerjaan dapat diposting di Facebook, papan pekerjaan online, atau di koran lokal. Tautan ke postingan lowongan tersebut dapat ditambahkan di description bidang.

organization tabel menyimpan informasi tentang semua perusahaan yang pernah menggunakan database ini sebagai bagian dari proses perekrutan mereka. Jelas, tabel ini penting ketika perekrutan sedang dilakukan untuk perusahaan lain.

Tabel terakhir di bidang subjek ini, job , berisi deskripsi pekerjaan yang sebenarnya. Sebagian besar atribut cukup jelas. Perlu diperhatikan bahwa tabel ini memiliki banyak kunci asing, yang artinya dapat digunakan untuk mencari kategori, posisi, platform, organisasi perekrutan, dan proses rekrutmen yang terkait dengan lowongan pekerjaan tersebut.

Aplikasi, Pemohon, dan Dokumen

Bagian ketiga dari skema terdiri dari tabel yang menyimpan informasi tentang pelamar kerja, aplikasi mereka, dan dokumen apa pun yang disertakan dengan aplikasi.

Tabel pertama, applicant , menyimpan informasi pribadi pelamar, seperti nama depan, nama belakang, email, nomor telepon, dll. Bidang ringkasan dapat digunakan untuk menyimpan profil singkat pelamar (yaitu paragraf).

Tabel berikutnya berisi informasi untuk setiap application , termasuk tanggalnya. Tabel juga berisi experience dan education kolom. Kolom ini dapat menjadi bagian dari applicant tabel, tetapi pelamar mungkin ingin atau tidak ingin menampilkan kualifikasi pendidikan atau pengalaman kerja tertentu pada setiap aplikasi yang mereka kirimkan. Oleh karena itu, kolom ini adalah bagian dari application meja. other_info kolom menyimpan informasi terkait aplikasi lainnya. Di application tabel, jobs_id dan pelamar_id masing-masing adalah kunci asing dari tabel pekerjaan dan pelamar.

Karena dapat ada beberapa lamaran untuk setiap pekerjaan tetapi setiap lamaran hanya untuk satu pekerjaan, akan ada hubungan satu-ke-banyak antara job dan application tabel. Demikian pula, satu pelamar dapat mengirimkan beberapa aplikasi (yaitu untuk pekerjaan yang berbeda), tetapi setiap aplikasi hanya berasal dari satu peserta; kami telah menerapkan hubungan satu-ke-banyak lainnya antara applicants dan application tabel untuk menangani ini.

document tabel mengelola dokumen pendukung yang dapat dilampirkan pelamar ke aplikasi mereka. Ini bisa berupa CV, resume, surat referensi, surat lamaran, dll. Perhatikan bahwa tabel ini memiliki kolom biner bernama dokumen, yang akan menyimpan file dalam format biner. Tautan ke dokumen dapat disimpan di url bidang; kolom nama menyimpan nama dokumen, dan last_update menandakan versi terbaru yang diunggah oleh pemohon. Perhatikan bahwa keduanya document dan url dapat dibatalkan; keduanya tidak wajib, dan pemohon dapat memilih untuk menggunakan salah satu atau kedua metode tersebut untuk menambahkan informasi ke permohonan mereka.

Tidak setiap aplikasi akan memiliki dokumen yang dilampirkan. Satu dokumen dapat dilampirkan ke beberapa aplikasi, dan satu aplikasi dapat memiliki beberapa dokumen pendukung. Ini berarti ada hubungan banyak ke banyak antara application dan document tabel. Untuk mengelola hubungan ini, tabel pencarian application_document telah dibuat.

Tes dan Wawancara

Sekarang kita akan beralih ke tabel yang menyimpan informasi tentang tes dan wawancara yang terkait dengan proses rekrutmen.

test tabel menyimpan detail pengujian termasuk id uniknya , code nama, duration dalam hitungan menit, dan maximum skor mungkin untuk tes itu.

Satu aplikasi dapat dikaitkan dengan beberapa tes dan satu tes dapat dikaitkan dengan beberapa aplikasi. Sekali lagi, kami memiliki tabel pencarian untuk mengimplementasikan relasi ini:application_test . start_time dan end_time kolom tidak dapat dibatalkan, karena pengujian mungkin tidak memiliki durasi, waktu mulai, atau waktu akhir tertentu.

Sebuah tes dapat dinilai oleh beberapa perekrut dan satu perekrut dapat menilai beberapa tes. answers tabel adalah tabel yang memungkinkan hal ini. total_grades kolom mencatat seberapa baik kandidat melakukan tes, dan kolom lulus hanya menunjukkan jika orang itu lulus atau gagal. Spesifik dari setiap tes individu dicatat dalam answer_details kolom. Perhatikan bahwa ketiga kolom ini tidak dapat dibatalkan; tes aplikasi mungkin ditugaskan ke perekrut yang belum menilainya. Selanjutnya, perekrut dapat diberikan tes sebelum benar-benar diambil.

interview tabel menyimpan informasi dasar (start_time , end_time , id unique yang unik , dan application_id yang relevan ) untuk setiap wawancara. Satu wawancara dapat dikaitkan dengan hanya satu aplikasi. Di sisi lain, satu aplikasi dapat memiliki beberapa wawancara. Oleh karena itu, ada hubungan satu-ke-banyak antara aplikasi dan tabel wawancara.

Satu wawancara dapat dilakukan oleh beberapa pengulas, dan satu pengulas dapat melakukan beberapa wawancara. Ini adalah hubungan banyak ke banyak lainnya, jadi kami telah membuat tabel pencarian interview_note . Ini menyimpan informasi tentang wawancara (dalam interview_id ), perekrut (dalam recruiter_id ), dan catatan perekrut tentang wawancara. Perekrut juga dapat mencatat apakah pelamar lulus wawancara atau tidak di kolom lulus, yang dapat dibatalkan.

Evaluasi dan Status Perekrut Aplikasi

Bagian terakhir dari model rekrutmen kami menyimpan informasi tentang perekrut, status lamaran, dan evaluasi lamaran.

recruiters tabel menyimpan first_name setiap perekrut , last_name , dan id yang unik nomor.

application_evaluation tabel menyimpan informasi tentang evaluasi aplikasi. Selain application_id dan recruiter_id , berisi umpan balik perekrut (dalam notes ) dan keputusan perekrutan terakhir, jika ada, dalam hired . Satu aplikasi dapat dievaluasi oleh beberapa perekrut dan satu perekrut dapat mengevaluasi beberapa aplikasi, sehingga keduanya recruiter dan application tabel memiliki hubungan satu-ke-banyak dengan application_evaluation meja.

Aplikasi dapat melalui beberapa tahap selama proses perekrutan, mis. “tidak terkirim”, “sedang ditinjau”, “menunggu keputusan”, “keputusan dibuat”, dll. Aplikasi akan memiliki status “tidak_dikirim” ketika pengguna telah memulai aplikasi tetapi belum mengirimkannya untuk ditinjau oleh perekrut. Setelah aplikasi diajukan, statusnya diubah menjadi “dalam peninjauan”, dan seterusnya. application_status tabel digunakan untuk menyimpan informasi tersebut.

application_status_change tabel digunakan untuk menyimpan catatan perubahan status untuk semua aplikasi yang diajukan. date_changed kolom menyimpan tanggal perubahan status. Tabel ini dapat berguna jika Anda ingin menganalisis waktu pemrosesan untuk setiap tahap aplikasi yang berbeda. Selanjutnya, status kolom tertentu dapat diambil menggunakan application_id kolom dari application_status_change meja.

Kasus Penggunaan Perekrutan Sederhana

Mari kita lihat bagaimana database kami dapat membantu proses perekrutan.

Misalkan sebuah perusahaan telah menugaskan Anda untuk mempekerjakan Manajer TI dengan pengalaman pemrograman. Basis data kami dapat membantu kami mempekerjakan orang seperti itu dengan menjalankan langkah-langkah berikut:

  1. Langkah pertama adalah memulai proses perekrutan baru. Untuk melakukannya, data dimasukkan ke dalam process dan step tabel. Perekrut dapat menambahkan langkah sebanyak yang mereka butuhkan.
  2. Selama tugas di atas, perekrut dapat membuat pekerjaan baru dan memasukkan detailnya di job , job_category , job_position , dan organization tabel. Terakhir, iklan pekerjaan akan ditempatkan di salah satu platform yang disimpan di job_platform meja.
  3. Selanjutnya, pelamar akan membuat profil dengan mengirimkan datanya ke applicant meja. Kemudian mereka akan meluncurkan aplikasi baru dengan memasukkan lebih banyak data ke application meja.
  4. Pemohon juga dapat melampirkan dokumen ke aplikasi mereka. Data ini akan disimpan dalam document dan application_document tabel.
  5. Jika pengguna ingin melamar lebih dari satu pekerjaan, mereka akan mengulangi langkah 3 dan 4.
  6. Setelah aplikasi dikirimkan, status aplikasi akan disetel menjadi “dikirim” (atau nama status lain yang dipilih oleh perekrut).
  7. Perekrut akan mengevaluasi aplikasi dan memasukkan umpan balik mereka di application_evaluation meja. Pada tahap ini, kolom yang disewa tidak akan berisi informasi.
  8. Setelah aplikasi dalam jumlah yang memadai diterima, perekrut akan menjalankan langkah berikutnya yang ditunjukkan dalam process_step meja.
  9. Jika langkah selanjutnya adalah mengelola beberapa jenis tes, perekrut akan membuat tes dengan menambahkan data ke dalam test meja.
  10. Tes yang dibuat pada langkah 9 akan ditetapkan ke aplikasi tertentu. Informasi yang menetapkan setiap pengujian ke setiap aplikasi akan disimpan di application_test meja. Perhatikan bahwa, selama setiap tahap, status aplikasi akan terus berubah. Ini akan dicatat di application_status_change meja.
  11. Setelah pelamar menyelesaikan tes, nilai untuk setiap tes aplikasi akan ditandai oleh perekrut dan dimasukkan ke dalam answers meja.
  12. Setelah tes dilakukan, langkah selanjutnya dari process_step tabel akan dieksekusi. Katakanlah langkah selanjutnya adalah wawancara.
  13. Data wawancara akan dimasukkan dalam interview meja. Perekrut akan memasukkan komentar mereka dan mengatakan apakah orang tersebut lulus wawancara atau tidak. Ini akan disimpan di interview_note meja.
  14. Jika process tabel berisi langkah-langkah wawancara dan tes lebih lanjut, mereka akan dieksekusi sampai langkah terakhir tercapai.
  15. Langkah terakhir dalam process_step tabel biasanya keputusan perekrutan. Jika pelamar lulus tes dan wawancara dan perusahaan memutuskan untuk mempekerjakan mereka, data dimasukkan ke dalam kolom perekrutan application_evaluation meja dan orang tersebut dipekerjakan.

Apa Pendapat Anda Tentang Model Data Sistem Rekrutmen Kami?

Pada artikel ini, kita melihat cara membuat skema database yang sangat sederhana untuk sistem rekrutmen. Kami membagi skema menjadi empat kategori dan kemudian menjelaskan masing-masing secara rinci. Terakhir, kami menjalankan kasus penggunaan untuk menunjukkan bahwa skema kami benar-benar dapat membantu merekrut karyawan.

Pekerjaan desain database sedang booming. Ingin menambah keahlian database Anda? Baik Anda pendatang baru yang ingin mempelajari dasar-dasar SQL atau profesional berpengalaman yang ingin bercabang ke Membuat Tabel di SQL | Kursus Interaktif | Vertabelo Academy" target="_blank">desain database, lihat kursus mandiri LearnSQL.com.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grup Facebook teratas untuk Analytics, Big Data, Data Mining, Hadoop, NoSQL, Data Science

  2. Apa yang Dilakukan dan Tidak Dilakukan Filestat Virtual, Memberitahu Anda Tentang Latensi I/O

  3. Cara Mendapatkan Semua Kemungkinan Kombinasi Baris Dari dua Tabel di SQL

  4. =) Operator untuk Pemula

  5. Pandas:Cara Membaca dan Menulis File