2011-10-18 68 views
1

我對存儲當前登錄用戶信息的最佳方式有疑問。我看到它的方式是我有兩種選擇:在會話中存儲用戶信息的最佳方式是什麼?

1)在用戶通過身份驗證後,實例化一個用戶對象,並且一次(從數據庫)用用戶數據填充該對象。然後將該對象序列化爲SESSION變量,並在每次想要查詢該對象的信息時對其進行反序列化。

2)在會話中只存儲用戶的ID,並在每次需要關於登錄用戶的一條信息(可能通過一些靜態類方法)查詢數據庫。

哪種方法會被視爲「最佳實踐」?或者不推薦,我應該完全採用不同的方法?

非常感謝提前。

+4

這取決於很多因素。例如,對用戶數據的更改是否應立即傳播到所有會話?數據庫訪問是否是Web應用程序的一個突破性瓶頸? –

+2

我認爲這個問題太含糊。你關心什麼?針對數據庫的額外查詢?用戶會話數據最新?時間表現?你的會話如何保存?你的數據庫設置是什麼?你在User對象中存儲了哪些數據?你的auth/auth系統有什麼限制?現在沒有什麼可以回答的。 – erisco

回答

3

我建議你有一個序列化的對象,它將包含一個唯一的標識符,以便以後獲得更多信息。但是,在這個對象中,我會保留經常使用的信息,如用戶名顯示在每個頁面上。儘量保持會話中的數據儘可能小。

相關問題