我有一个带有 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 every UPDATE
and DELETE
?