2014-01-27 29 views
0

您好,我需要您的建議。我有兩張表:州和縣,每個州可以有一個或多個縣有關。我有兩個下拉菜單,一個是州和另一個是縣。每次用戶選擇一個狀態ajax請求時,查詢數據庫並查找相應的狀態縣。如果用戶不在數據庫中,用戶也可以添加更多的縣。在會話中保存州和縣名單

我想在PHP用戶會話中保存所有州和縣,爲了不查詢數據庫所有的時間,問題出現時有人添加一個新的縣我可以更新該用戶的會話變量,但其他人用戶不知道數據庫中是否有新的縣。

你認爲保存會話或查詢數據庫多次是個好主意嗎?我也接受其他解決方案。 謝謝

+2

不要將該信息存儲在SESSION中,將其存儲在數據庫中。 –

回答

2

如果數據庫正確編制索引,應該沒有必要這樣做。

由於會話數據文件必須在每次使用會話的請求上加載和解析,所以在大量數據的情況下,甚至有可能將數據存儲在會話中會降低總體體驗。

+0

因此,如果表格正確索引,沒有必要使用緩存? –

+0

@Jorge *在這個特定的情況下,*是的。在會話中存儲列表沒有任何意義。在其他情況下,單獨的緩存層很有意義。 –

+0

這是你在學校學不到的東西,謝謝 –

1

這是很多會話數據。會話數據存儲在服務器上。您會以任何方式將數據從服務器發回給用戶,但會在需要該數據的每個用戶的會話中複製該數據。

我會把它作爲一個查找來實現,因爲這個列表太長了,而且可能會增長,並且如果它成爲一個問題,它可能會在後面擔心。您可以緩存查詢和結果以保存每次在db上運行的查詢和結果,並且在添加新的縣時將其清除並再次緩存。另外,你可以保存列表存儲在一個數組在PHP中,但這是真正理想的小枚舉。

+0

不一樣,那不是會話的工作方式。你似乎在與cookies的混淆會話 – 2014-01-27 19:53:36

+0

對不起,修改! – StringsOnFire