[請益] 顯示排班表

作者: jscorpio1 (我 天蠍)   2014-06-15 10:22:22
排班表依日期只顯示星期一到日
分成早上、下午、晚上、大夜(6小時一班)
門口有東、西、南、北
大概如下
星期一(6/16) 星期二(6/17) 星期三(6/18) 星期四(6/19) 星期五(6/20) ....
東門:AAA
早 西門:BBB
上 南門:CCC
北門:DDD






我現在的做法是
以迴圈方式顯示架構,在每一個<td></td>之間,以日期及班表時間為條件進行SELECT
每檢視一次班表,就要對資料庫進行28次(4班*7天)的query
因為接下來有可能要改成2小時一班
這樣的話,query次數就會變成84次(12班*7天)
使用者只要按一次refresh,就要84次的query
覺得這樣的次數有點多,但想了很久,也沒有想到比較好的解決方式
想請問大家,有沒有其他比較好的做法呢?
還是說84次,對資料庫而言,是一塊小蛋糕??
作者: up9cloud (九天)   2014-06-15 11:16:00
84很少,除非你是弄84*connection那就有點多
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-06-15 11:23:00
搞到84次也太誇張,活用group by可以減少次數
作者: jscorpio1 (我 天蠍)   2014-06-15 13:38:00
是只有1個connection。可以請moon大說詳細一點嗎?
作者: chenstin (orz)   2014-06-15 18:17:00
你可以一次查出來放陣列去對照,就不用一個日期一個班別這樣跑sql
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-06-15 19:45:00
自己講得模模糊糊要詳細,你table交出來先
作者: jhunkyoiori (瓦爾加布)   2014-06-15 20:59:00
MOON大跟chen大的方法都可以減少SELECT的次數
作者: j87b0003 (I'm 邱老虎)   2014-06-15 21:48:00
有考慮過用json的存法嗎? 一天只要一筆,不過查詢就麻煩
作者: dlikeayu (太陽拳vs野球拳)   2014-06-15 23:28:00
二維array存全部人的班表,要不肥就只存一天最後serialize進db 真要快就用no-sql來處理資料
作者: jscorpio1 (我 天蠍)   2014-06-16 00:45:00
MOON大,不好意思,我不是很清楚你的意思,我以為文中的班表已經提供足夠的資訊了,請問我還需要提供些什麼?感謝chen大,我會試看看array的方式。
作者: crossdunk (推噓自如)   2014-06-16 09:14:00
他是需要你提供資料表吧@@ 不然怎麼知道你是怎麼存在裡
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-06-16 12:45:00
阿你workdate, worktime, location一起GROUP BY不就結了
作者: alog (A肉哥)   2014-06-16 14:38:00
page cache

Links booklink

Contact Us: admin [ a t ] ucptt.com