一番下にデータベース構造を追加しました
私は人材紹介会社のためにランキングシステムを作成中です.私はすべての応募者の詳細を異なるテーブルに取り込み、(特定の求人広告のニーズ/要件に適合する場合) 候補者のデータを比較することでそれらをランク付けします.データベース内の job_advert テーブル内のジョブに。そして、上位 10 位の (資格のある) 候補者のリストを表示し、その候補者がその仕事に資格があるという通知を送信します。
次のようにデータベースから候補者データを取得します。
class ranking_model extends CI_Model {
function __construct() {
parent::__construct();
}
function age() {
$sql = "SELECT * FROM membership";
$query = $this->db->query($sql)->result();
foreach ($query as $row) {
$id = $row->id_number;
$dobs = substr($id, 0, 6);
$dob = str_split($dobs, 2);
$day = date('d', mktime(0, 0, 0, 0, $dob[2], 0));
$month = date('m', mktime(0, 0, 0, $dob[1] + 1, 0, 0));
$year = date('o', mktime(0, 0, 0, 0, 0, $dob[0] + 1));
$date = "$day/$month/$year";
//explode the date to get month, day and year
$date = explode("/", $date);
//get age from date or birthdate
$age = (date("md", date("U", mktime(0, 0, 0, $date[0], $date[1], $date[2]))) > date("md") ? ((date("Y") - $date[2]) - 1) : (date("Y") - $date[2]));
}
return $age;
}
function job_experience() {
$sql = "SELECT * FROM job_list
JOIN job_history
ON job_list.job_history_id = job_history.job_history_id";
$query = $this->db->query($sql)->result();
foreach ($query as $row) {
$start = $row->start_date;
$end = $row->end_date;
// //explode the date to get month, day and year
$start = explode("-", $start);
$end = explode("-", $end);
// //get age from date or birthdate
$exp_in_years = (date("md", date("U", mktime(0, 0, 0, $start[2], $start[1], $start[0]))) > date("md", mktime(0, 0, 0, $end[2], $end[1], 0)) ? ((date("Y", mktime(0, 0, 0, 0, 0, $end[0])) - $start[0])) : (date("Y", mktime(0, 0, 0, 0, 0, $end[0])) - $start[0]));
}
return $exp_in_years;
}
function location() {
$sql = "SELECT * FROM personal";
$query = $this->db->query($sql)->result();
foreach ($query as $row) {
$city = $row->city;
}
return $city;
}
function relocate() {
$sql = "SELECT * FROM personal";
$query = $this->db->query($sql)->result();
foreach ($query as $row) {
$relocate = $row->relocate; //are you willing to relocate yes/no
}
return $relocate;
}
function get_personal() {
$this->db->select('*');
$this->db->from('membership');
$this->db->join('personal', 'membership.id_number = personal.id_number');
$query = $this->db->get()->result();
foreach ($query as $row) {
$row->id_number;
$row->firstname;
}
return $query;
}
広告の詳細は次のようになります。
function get_advert() {
$sql = "SELECT * FROM job_advert";
$query = $this->db->query($sql)->result();
foreach ($query as $row) {
$job_id = $row->job_id;
$job_title = $row->job_title;
$salary_offered = $row->salary_offered;
$is_negotiable = $row->negotiable;
$company_location = $row->company_location;
$experience = $row->required_experience;
$age = $row->age;
}
}
}
候補者データを job_adverts テーブルから取得したデータと比較する方法がわかりません。本当にわからない。あらゆる種類の助けをいただければ幸いです。
データベース構造
太字PK斜体はFKです。
メンバーシップ( id_number
、名、姓、ユーザー名、電子メール、電話番号、パスワード、役割、Reg_time、アクティブ化);
個人 ( person_id
, 住所, 市区町村, ライセンス, id_number
, 性別, 移転, 最低給与, 希望給与, 契約タイプ);
job_list( job_list_id
, job_history_id
, start_date, end_date, 収入, company_name, industry_type, reason_for_leave, job_title);
job_history( job_history_id
, id_number
);
job_advert( advert_id
, job_title, job_description, start_date, end_date, 給与_offered, 応相談, 福利厚生, company_location, required_experience, age);
データベースには他にもテーブルがありますが、これらはランキングに使用するものです。