2011-10-18 18 views
1

現在ログインしているユーザーの情報を保存する最善の方法に関する質問があります。セッションにユーザー情報を保存する最善の方法は?

1)ユーザーが認証されたら、Userオブジェクトをインスタンス化し、そのオブジェクトをUserのデータで一度に(データベースから)埋めます。その後、そのオブジェクトをSESSION変数に直列化し、そのオブジェクトに情報を照会するたびにデシリアライズします。

2)セッションにユーザーのIDだけを格納し、ログインしたユーザーに関する情報を必要とするたびにデータベースを照会します(おそらく、静的なクラスメソッドを使用して)。

「ベストプラクティス」とみなされる方法はどれですか?またはどちらも推奨されていません、私は全く別のアプローチで行く必要がありますか?

事前に感謝します。

+4

多くの要因によって異なります。たとえば、ユーザーデータへの変更はすべてのセッションに即座に伝播する必要がありますか?データベースへのアクセスは、あなたのwebappの厄介なボトルネックですか? –

+2

この質問はあまりにも曖昧だと思います。あなたは何を心配していますか?データベースに対する余分なクエリ?ユーザーのセッションデータが最新の状態になっていますか?時間パフォーマンス?セッションはどのように保存されますか?データベースの設定は何ですか?どのデータがUserオブジェクトに格納されていますか?あなたのauth/authシステムの制約は何ですか?今は答えがないだけです。 – erisco

答えて

3

後で詳しい情報を得るための一意の識別子を含むシリアル化オブジェクトを使用することをお勧めします。しかし、このオブジェクトでは、すべてのページに表示されるユーザー名のように頻繁に使用される情報を保持します。できるだけセッション内のデータを保持してください。

関連する問題