2012-12-05 47 views
3

我有一個網站,要求用戶輸入他們可以教的日子和時間。例如,一位教授可以在週一下午1點到2點,週二下午2點到4點進入。我應該使用序列化來存儲可用時間嗎?

目前我正在使用serialize將數據存儲在名爲「availability」的列中的MySQL表中。我週一+ 1300 + 1400和週二+ 1400 + 1500並將這兩個序列化。然後我使用爆炸()來提取星期一,1300,1400等。

我覺得應該有更好的方法來做到這一點。每次學生想要看到教師的可用性時,我都需要提取這些信息,而且我認爲這種方法對此沒有效率。

您能否讓我知道更好的解決方案?

回答

2

您當前的解決方案將不允許您根據數據庫本身的可用性進行搜索。您需要獲取序列化數據,反序列化並檢查它,這將非常昂貴。

你應該做的是建立一個表,看起來有點像這樣:

User_id | Day | Start_Time | End_Time

現在,如果有USER_ID用戶是免費的,從週一下午2-3點和週五從4-5pm,將兩個條目添加到此表中

1 | Mon | 1400 | 1500 
1 | Fri | 1600 | 1700 

您現在可以輕鬆地在數據庫本身上進行搜索,過濾,排序等操作。

+0

不管安全是最重要的嗎? –

+0

序列化如何提供任何形式的安全性? – xbonez

+0

忽略我;我誤讀了這個問題 –

相關問題