4 つのテーブルを持つ MySQL データベースがあります。
job
job_application
client
candidate
job_id各テーブルには独自の主キーがありjob_application_idますclient_id。candidate_id
テーブル内の雇用者は、clientテーブルに求人を掲載できjobます。jobテーブルには、クライアントを識別するフィールドが含まれclient_idています
テーブル内の候補者は、candidateテーブルに行を挿入して仕事に応募できますjob_application。job_applicationテーブルには、job_idフィールドとcandidate_id、ジョブが何であるか、誰が応募したかを識別するためのフィールドが含まれています
雇用主が受け取った求人応募を管理するためのクエリを作成する際に、ちょっとした問題に遭遇しました。ここに例として、行を削除する私が書いた関数がありますjob_application
public function deleteJobApplications($job_application_ids) {
$this->db->query("DELETE ja.* FROM " . DB_PREFIX . "job_application ja LEFT JOIN " . DB_PREFIX . "job j ON (j.job_id = ja.job_id) WHERE ja.job_application_id IN ('" . implode("','", array_map('intval', $job_application_ids)) . "') AND j.client_id = '" . (int)$this->client->getClientId() . "'");
}
client_idはテーブルでのみ参照されるため、テーブルにアクセスするたびにテーブルにjobアクセスする必要がありますLEFT JOINjobUPDATEDELETEjob_application
client_idテーブルに別のフィールドを追加してjob_application、基本的にデータベースに既に保持されているデータを複製する必要がありますか、それともLEFT JOINfor everyUPDATEとを続行する必要がありDELETEますか?