在我的应用程序中我有一个作业表。在工作表中有两个字段有一个阵列上的主键列表,然后根据它们查询
- 其中有逗号分隔的列表(1,5,6,3)
在一个特定的页面,我需要
show records where A=2 and B=$pageid (which will be any one id)
一个
所以我所做的就是根据条件对表格进行预扫描,并根据工作ID列表制作一个满足条件的数组,然后根据这些ID查询特定的记录。
$jobs = $this->db->get("job_postings");
foreach($jobs->result_array() as $job)
{
$univArr = explode(",",$job["job_university"]);
if((in_array($univid,$univArr)) or ($job["job_post_to"]==2)) {
$jobArr[] = $job["id"];
}
}
return $jobArr;
但我觉得这不是正确的做法。有没有更好的方法来做到这一点。
我担心的是会有很多大学和很多作业的CSV场张贴和行大小增长巨大,这就是为什么我试图以这种方式包含它 – swordfish
@swordfish:你是对的。一个好的数据库模式不会重复任何信息,因此只需在每个大学的job_postings中重复一个条目就是一个糟糕的解决方案。用逗号分隔的方法有效;问题在于列表中的单个值对数据库不可见,所以您会得到效率低下的查询。映射表有很小的行(每个都有两个整数),所以它可以扩展到许多工作和许多大学。 – Borealid