Bạn có muốn học cách thiết kế hệ thống cơ sở dữ liệu và ánh xạ quy trình kinh doanh sang mô hình dữ liệu không? Sau đó, bài đăng này là dành cho bạn.
Trong bài viết này, bạn sẽ thấy cách thiết kế một giản đồ cơ sở dữ liệu đơn giản cho một công ty tuyển dụng. Sau khi đọc hướng dẫn này, bạn sẽ có thể hiểu cách các lược đồ cơ sở dữ liệu được thiết kế cho các ứng dụng trong thế giới thực.
Quy trình kinh doanh của hệ thống tuyển dụng
Trước khi thiết kế bất kỳ cơ sở dữ liệu hoặc mô hình dữ liệu nào, bắt buộc phải hiểu quy trình nghiệp vụ cơ bản cho hệ thống đó. Lược đồ cơ sở dữ liệu mà chúng tôi sẽ tạo dành cho một công ty hoặc nhóm tuyển dụng tưởng tượng. Trước tiên, chúng ta hãy xem các bước liên quan đến việc thuê nhân viên mới:
- Các công ty liên hệ với các cơ quan tuyển dụng để thuê nhân danh họ. Trong một số trường hợp, các công ty tuyển dụng nhân viên trực tiếp.
- Người chịu trách nhiệm tuyển dụng bắt đầu quá trình tuyển dụng. Quá trình này có thể có nhiều bước, chẳng hạn như sàng lọc ban đầu, kiểm tra viết, phỏng vấn đầu tiên, phỏng vấn tiếp theo, quyết định tuyển dụng thực tế, v.v.
- Sau khi các nhà tuyển dụng đã đồng ý về một quy trình cụ thể - và điều này có thể thay đổi tùy thuộc vào khách hàng, công ty hoặc công việc được đề cập - vị trí tuyển dụng được quảng cáo trên nhiều nền tảng khác nhau.
- Các ứng viên bắt đầu nộp đơn xin việc.
- Các ứng viên được đưa vào danh sách chọn lọc và được mời tham gia cuộc kiểm tra hoặc phỏng vấn ban đầu.
- Các ứng viên sẽ xuất hiện cho bài kiểm tra / phỏng vấn.
- Các bài kiểm tra được chấm điểm bởi các nhà tuyển dụng. Trong một số trường hợp, các bài kiểm tra được chuyển đến các chuyên gia để chấm điểm.
- Các cuộc phỏng vấn của ứng viên được chấm bởi một hoặc nhiều nhà tuyển dụng.
- Các ứng viên được đánh giá dựa trên các bài kiểm tra và phỏng vấn.
- Quyết định tuyển dụng được đưa ra.
Lược đồ cơ sở dữ liệu hệ thống tuyển dụng
Theo quan điểm của quy trình nói trên, lược đồ cơ sở dữ liệu của chúng tôi được chia thành năm lĩnh vực chủ đề:
-
Process
-
Jobs
-
Application, Applicant, and Documents
-
Test and Interviews
-
Recruiters and Application Evaluation
Chúng tôi sẽ xem xét chi tiết từng khu vực này, theo thứ tự chúng được liệt kê. Dưới đây, bạn có thể xem toàn bộ mô hình dữ liệu.
Quy trình
Danh mục quy trình chứa thông tin liên quan đến quy trình tuyển dụng. Nó chứa ba bảng:process
, step
và process_step
. Chúng ta sẽ xem xét từng cái một.
process
bảng lưu trữ thông tin về từng quá trình tuyển dụng. Mọi quy trình sẽ có một id đặc biệt, một mã và một description
của quá trình đó. Chúng tôi cũng sẽ có recruiter_id
của người bắt đầu quá trình.
step
bảng chứa thông tin về các bước tiếp theo trong suốt quá trình tuyển dụng đó. Mỗi bước đều có id
và một mã code
Tên. Cột tên có thể có các giá trị như “sàng lọc ban đầu”, “kiểm tra viết”, “phỏng vấn nhân sự”, v.v.
Vì một quy trình có thể có nhiều bước và một bước có thể là một phần của nhiều quy trình, chúng ta cần một bảng tra cứu. process_step
bảng chứa thông tin về từng bước (trong step_id
) và quy trình nó thuộc về (trong process_id
). Chúng tôi cũng có một trạng thái, cho chúng tôi biết trạng thái của bước đó trong quy trình đó; điều này có thể là NULL nếu bước này chưa được bắt đầu. Cuối cùng, chúng tôi có priority
, cho chúng tôi biết thứ tự thực thi các bước. Các bước có priority
cao nhất giá trị sẽ được thực thi đầu tiên.
Việc làm
Tiếp theo, chúng ta có Jobs
môn học, nơi lưu trữ tất cả thông tin liên quan đến (các) công việc mà chúng tôi đang tuyển dụng. Lược đồ cho danh mục này trông giống như sau:
Hãy giải thích chi tiết từng bảng.
job_category
bảng mô tả rộng rãi loại công việc. Chúng tôi có thể mong đợi thấy các danh mục công việc như “CNTT”, “quản lý”, “tài chính”, “giáo dục”, v.v.
job_position
bảng chứa chức danh công việc thực tế. Vì một chức danh có thể được quảng cáo cho nhiều công việc (ví dụ:“Giám đốc CNTT”, “Giám đốc bán hàng”), chúng tôi đã tạo một bảng riêng cho các vị trí công việc. Chúng tôi có thể mong đợi thấy các giá trị như “Trưởng nhóm CNTT”, “Phó chủ tịch” và “Người quản lý” trong bảng này.
job_platform
bảng đề cập đến phương tiện được sử dụng để quảng cáo khai trương việc làm. Ví dụ, một công việc có thể được đăng trên Facebook, bảng việc làm trực tuyến hoặc trên một tờ báo địa phương. Có thể thêm liên kết đến tin tuyển dụng đó trong description
đồng ruộng.
organization
bảng lưu trữ thông tin về tất cả các công ty đã từng sử dụng cơ sở dữ liệu này như một phần của quá trình tuyển dụng của họ. Rõ ràng, bảng này rất quan trọng khi việc tuyển dụng đang được thực hiện cho một công ty khác.
Bảng cuối cùng trong chủ đề này, job
, chứa mô tả công việc thực tế. Hầu hết các thuộc tính là tự giải thích. Chúng ta cần lưu ý rằng bảng này có nhiều khóa ngoại, có nghĩa là bảng này có thể được sử dụng để tra cứu danh mục, vị trí, nền tảng, tổ chức tuyển dụng và quy trình tuyển dụng liên quan đến việc mở công việc đó.
Đơn, Người nộp đơn và Tài liệu
Phần thứ ba của lược đồ bao gồm các bảng lưu trữ thông tin về người xin việc, đơn xin việc của họ và bất kỳ tài liệu nào đi kèm với đơn đăng ký.
Bảng đầu tiên, applicant
, lưu trữ thông tin cá nhân của người nộp đơn, chẳng hạn như họ, tên, email, số điện thoại, v.v. Trường tóm tắt có thể được sử dụng để lưu trữ hồ sơ ngắn của người nộp đơn (tức là một đoạn văn).
Bảng tiếp theo chứa thông tin cho từng application
, bao gồm cả ngày tháng của nó. Bảng cũng chứa experience
và education
cột. Các cột này có thể là một phần của applicant
nhưng người nộp đơn có thể muốn hoặc không muốn hiển thị bằng cấp giáo dục hoặc kinh nghiệm làm việc cụ thể trên mọi đơn đăng ký mà họ gửi. Do đó, các cột này là một phần của application
bàn. other_info
cột lưu trữ bất kỳ thông tin nào khác liên quan đến ứng dụng. Trong application
bảng, các job_id và application_id là các khóa ngoại tương ứng từ các bảng việc làm và ứng viên.
Vì có thể có nhiều ứng dụng cho mỗi công việc nhưng mỗi đơn chỉ dành cho một công việc nên sẽ có mối quan hệ một-nhiều giữa job
và application
những cái bàn. Tương tự, một ứng viên có thể nộp nhiều đơn (tức là cho các công việc khác nhau), nhưng mỗi đơn chỉ từ một người tham gia; chúng tôi đã triển khai một mối quan hệ một-nhiều khác giữa applicant
và application
các bảng để xử lý điều này.
document
bảng quản lý các tài liệu hỗ trợ mà người nộp đơn có thể đính kèm vào đơn đăng ký của họ. Đây có thể là CV, sơ yếu lý lịch, thư giới thiệu, thư xin việc, ... Lưu ý rằng bảng này có một cột nhị phân có tên là tài liệu, sẽ lưu trữ tệp ở định dạng nhị phân. Một liên kết đến tài liệu có thể được lưu trữ trong url
đồng ruộng; cột tên lưu trữ tên của tài liệu và last_update
biểu thị phiên bản mới nhất được tải lên bởi người nộp đơn. Lưu ý rằng cả document
và url
là nullable; không bắt buộc và người nộp đơn có thể chọn sử dụng một trong hai hoặc cả hai phương pháp để thêm thông tin vào đơn đăng ký của họ.
Không phải mọi ứng dụng sẽ có tài liệu đính kèm. Một tài liệu có thể được đính kèm vào nhiều ứng dụng và một ứng dụng có thể có nhiều tài liệu hỗ trợ. Điều này có nghĩa là có nhiều mối quan hệ giữa application
và document
những cái bàn. Để quản lý mối quan hệ này, bảng tra cứu application_document
đã được tạo.
Kiểm tra và Phỏng vấn
Bây giờ chúng ta sẽ chuyển sang các bảng lưu trữ thông tin về các bài kiểm tra và phỏng vấn liên quan đến quy trình tuyển dụng.
test
bảng lưu trữ chi tiết kiểm tra bao gồm id
duy nhất của nó , code
tên, duration
của nó trong vài phút và maximum
số điểm có thể cho bài kiểm tra đó.
Một ứng dụng có thể được liên kết với nhiều bài kiểm tra và một bài kiểm tra có thể được liên kết với nhiều ứng dụng. Một lần nữa, chúng tôi có một bảng tra cứu để triển khai mối quan hệ này:application_test
. start_time
và end_time
các cột không thể bỏ qua, vì một bài kiểm tra có thể không có bất kỳ thời lượng, thời gian bắt đầu hoặc thời gian kết thúc cụ thể nào.
Một bài kiểm tra có thể được nhiều nhà tuyển dụng chấm điểm và một nhà tuyển dụng có thể chấm điểm nhiều bài kiểm tra. answers
bảng là bảng làm cho điều này có thể. total_grades
cột ghi lại ứng viên đã làm tốt như thế nào trong bài kiểm tra và cột vượt qua chỉ đơn giản biểu thị nếu người đó đạt hay không đạt. Chi tiết cụ thể của từng bài kiểm tra riêng lẻ được ghi lại trong answer_details
cột. Lưu ý rằng ba cột này có thể là nullable; một bài kiểm tra ứng dụng có thể được giao cho một nhà tuyển dụng chưa xếp loại nó. Hơn nữa, một nhà tuyển dụng có thể được chỉ định một bài kiểm tra trước khi nó thực sự được thực hiện.
interview
bảng lưu trữ thông tin cơ bản (start_time
, end_time
, một id
duy nhất và application_id
có liên quan ) cho mỗi cuộc phỏng vấn. Một cuộc phỏng vấn chỉ có thể được liên kết với một ứng dụng. Mặt khác, một ứng dụng có thể có nhiều cuộc phỏng vấn. Do đó, tồn tại mối quan hệ một-nhiều giữa đơn xin việc và bảng phỏng vấn.
Một cuộc phỏng vấn có thể được thực hiện bởi nhiều người đánh giá và một người đánh giá có thể thực hiện nhiều cuộc phỏng vấn. Đó là một mối quan hệ nhiều-nhiều khác, vì vậy chúng tôi đã tạo bảng tra cứu interview_note
. Nó lưu trữ thông tin về cuộc phỏng vấn (trong interview_id
), nhà tuyển dụng (trong recruiter_id
), và ghi chú của nhà tuyển dụng về cuộc phỏng vấn. Người tuyển dụng cũng có thể ghi lại việc ứng viên có vượt qua cuộc phỏng vấn hay không trong cột vượt qua, cột này có thể bỏ qua.
Đánh giá và Trạng thái Đơn đăng ký của Nhà tuyển dụng
Phần cuối cùng của mô hình tuyển dụng của chúng tôi lưu trữ thông tin về người tuyển dụng, trạng thái ứng tuyển và đánh giá ứng dụng.
recruiters
bảng lưu trữ first_name
của từng nhà tuyển dụng , last_name
và id
duy nhất con số.
application_evaluation
bảng chứa thông tin về các đánh giá ứng dụng. Ngoài application_id
và recruiter_id
, nó chứa phản hồi của nhà tuyển dụng (trong notes
) và quyết định tuyển dụng cuối cùng, nếu có, trong hired
. Một ứng dụng có thể được đánh giá bởi nhiều nhà tuyển dụng và một nhà tuyển dụng có thể đánh giá nhiều ứng dụng, vì vậy cả recruiters
và application
bảng có mối quan hệ một-nhiều với application_evaluation
bàn.
Một ứng dụng có thể trải qua nhiều giai đoạn trong quá trình tuyển dụng, ví dụ:“Chưa gửi”, “đang xem xét”, “đang chờ quyết định”, “đã đưa ra quyết định”, v.v. Đơn đăng ký sẽ có trạng thái “chưa gửi” khi người dùng đã bắt đầu đăng ký nhưng chưa gửi để nhà tuyển dụng xem xét. Sau khi đơn đăng ký được gửi, trạng thái được chuyển thành “đang xem xét”, v.v. application_status
bảng được sử dụng để lưu trữ thông tin đó.
application_status_change
bảng được sử dụng để duy trì một bản ghi về các thay đổi trạng thái cho tất cả các ứng dụng đã nộp. date_changed
cột lưu trữ ngày thay đổi trạng thái. Bảng này có thể hữu ích nếu bạn muốn phân tích thời gian xử lý cho từng giai đoạn của các ứng dụng khác nhau. Hơn nữa, trạng thái của bất kỳ cột cụ thể nào có thể được truy xuất bằng cách sử dụng application_id
từ application_status_change
bàn.
Một Trường hợp Sử dụng Tuyển dụng Đơn giản
Hãy xem cơ sở dữ liệu của chúng tôi có thể giúp ích gì cho quá trình tuyển dụng.
Giả sử một công ty đã chỉ định bạn thuê một Giám đốc CNTT có kinh nghiệm lập trình. Cơ sở dữ liệu của chúng tôi có thể giúp chúng tôi thuê một người như vậy bằng cách thực hiện các bước sau:
- Bước đầu tiên là bắt đầu quy trình tuyển dụng mới. Để làm như vậy, dữ liệu được nhập vào
process
vàsteps
những cái bàn. Nhà tuyển dụng có thể thêm bao nhiêu bước nếu họ cần. - Trong nhiệm vụ ở trên, nhà tuyển dụng có thể tạo một công việc mới và nhập thông tin chi tiết vào
job
,job_category
,job_position
vàorganization
những cái bàn. Cuối cùng, quảng cáo tuyển dụng sẽ được đặt trên một trong các nền tảng được lưu trữ trongjob_platform
bảng. - Tiếp theo, người đăng ký sẽ tạo hồ sơ bằng cách gửi dữ liệu của họ cho
applicant
bàn. Sau đó, họ sẽ khởi chạy một ứng dụng mới bằng cách nhập thêm dữ liệu vàoapplication
bảng. - Người nộp đơn cũng có thể đính kèm các tài liệu vào đơn đăng ký của họ. Dữ liệu này sẽ được lưu trữ trong
document
vàapplication_document
bảng. - Nếu người dùng muốn nộp đơn cho nhiều công việc, họ sẽ lặp lại bước 3 và 4.
- Sau khi đơn đăng ký được gửi, trạng thái của đơn đăng ký sẽ được đặt thành “đã nộp” (hoặc một tên trạng thái khác do nhà tuyển dụng chọn).
- Nhà tuyển dụng sẽ đánh giá ứng dụng và nhập phản hồi của họ vào
application_evaluation
bàn. Ở giai đoạn này, cột được thuê sẽ không chứa thông tin. - Sau khi nhận đủ số lượng đơn đăng ký, nhà tuyển dụng sẽ thực hiện bước tiếp theo được hiển thị trong
process_step
bảng. - Nếu bước tiếp theo là quản lý một số loại bài kiểm tra, nhà tuyển dụng sẽ tạo bài kiểm tra bằng cách thêm dữ liệu vào
test
bảng. - (Các) bài kiểm tra được tạo ở bước 9 sẽ được chỉ định cho một ứng dụng cụ thể. Thông tin chỉ định mỗi bài kiểm tra cho mỗi ứng dụng sẽ được lưu trữ trong
application_test
bàn. Lưu ý rằng, trong mỗi giai đoạn, trạng thái của ứng dụng sẽ tiếp tục thay đổi. Điều này sẽ được ghi lại trongapplication_status_change
bảng. - Sau khi ứng viên hoàn thành bài kiểm tra, điểm cho mỗi bài kiểm tra ứng dụng sẽ được nhà tuyển dụng đánh dấu và nhập vào
answers
bảng. - Sau khi kiểm tra được thực hiện, bước tiếp theo từ
process_step
bảng sẽ được thực thi. Giả sử bước tiếp theo là phỏng vấn. - Dữ liệu phỏng vấn sẽ được nhập vào
interview
bàn. Nhà tuyển dụng sẽ nhập nhận xét của họ và cho biết liệu người đó có vượt qua cuộc phỏng vấn hay không. Điều này sẽ được lưu trữ tronginterview_note
bảng. - Nếu
process
bảng chứa các bước phỏng vấn và kiểm tra tiếp theo, chúng sẽ được thực hiện cho đến khi đạt được bước cuối cùng. - Bước cuối cùng trong
process_step
bảng thường là quyết định tuyển dụng. Nếu ứng viên vượt qua các bài kiểm tra và phỏng vấn và công ty quyết định thuê họ, dữ liệu sẽ được nhập vào cột tuyển dụng củaapplication_evaluation
bàn và người được thuê.
Bạn nghĩ gì về Mô hình dữ liệu hệ thống tuyển dụng của chúng tôi?
Trong bài viết này, chúng tôi đã giới thiệu cho các bạn cách tạo một lược đồ cơ sở dữ liệu rất đơn giản cho hệ thống tuyển dụng. Chúng tôi chia lược đồ thành bốn loại và sau đó giải thích chi tiết từng loại. Cuối cùng, chúng tôi đã chạy một trường hợp sử dụng để cho thấy rằng lược đồ của chúng tôi thực sự có thể giúp tuyển dụng một nhân viên.
Các công việc thiết kế cơ sở dữ liệu đang bùng nổ. Bạn muốn thêm vào các kỹ năng cơ sở dữ liệu của mình? Cho dù bạn là người mới muốn tìm hiểu kiến thức cơ bản về SQL hay là một chuyên gia dày dạn kinh nghiệm muốn chuyển sang Tạo bảng trong SQL | Khóa học tương tác | Học viện Vertabelo "target =" _ blank "> thiết kế cơ sở dữ liệu, hãy xem các khóa học theo nhịp độ riêng của LearnSQL.com.