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 JOIN
job
UPDATE
DELETE
job_application
client_id
テーブルに別のフィールドを追加してjob_application
、基本的にデータベースに既に保持されているデータを複製する必要がありますか、それともLEFT JOIN
for everyUPDATE
とを続行する必要がありDELETE
ますか?