在我的應用程序中我有一個作業表。在工作表中有兩個字段有一個陣列上的主鍵列表,然後根據它們查詢
- 其中有逗號分隔的列表(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