看板 PHP 關於我們 聯絡資訊
問題如下 現在要做個簡易的排班表 1.每一個人的每一天的班別寫入為一筆資料 人 班 日期 A君 123班 5/1 B君 456班 5/1 A君 456班 5/2 A君 123班 5/3 這種做法,資料庫可能有6萬筆資料 2.把班別欄位用","分開(用explode判斷 日期) 人 班 A君 123班,456班,123班 B君 456班 這樣資料數量可能減少為2千筆資料 那這兩種做法,在使用者操作的情況下,速度會比較快呢? 感覺會有點像是 資料庫搜尋 或是 php程式判斷的差別. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.200.209
chrisQQ:看你搜尋的條件,如果只搜尋人,那當然第二種比較快, 05/21 16:24
chrisQQ:但一般來說都會用 1 來設計。 05/21 16:24
tyf99:排班會常修改嗎? 第二種不利修改 05/21 16:46
kingoface:班表算是滿長修改的,但是搜尋方面也可以說非常多,所以 05/21 17:32
kingoface:想說問問看有沒有比較好的做法.我目前是用2. 05/21 17:33
chrisQQ:搜尋可以用很多方法優化~ 05/21 18:33
dio833:你的班別合併了,那日期欄位也合併了嗎?然後依照順序判斷代 05/21 23:20
dio833:表的日期嗎?這樣做好像很驚險 05/21 23:21
dio833:今天要查詢5/4號456班排的人,可能就搞死自己了 05/21 23:24
dio833:我比較推薦用第一種做法,因為省資料量換來的代價太高了 05/21 23:26
liaosankai:現在儲存介媒技術大躍進,用空間換時間是比較好的 05/22 02:04
MOONRAKER:2看起來比較像寫log(不常看也幾乎不搜尋)的方法。 05/22 12:06
carlcarl:1 +1 05/23 00:18
shadowjohn:後者這種最多也只拿來分格數字型索引,不會是文字 05/24 08:31
shadowjohn:通常會用第一種做法^^ 05/24 08:32