2011-10-18 3 views
1

J'ai une question concernant la meilleure façon de stocker le courant connecté informations de l'utilisateur. La façon dont je le vois, est que j'ai deux options:Le meilleur moyen de stocker des informations sur les utilisateurs dans les sessions?

1) Après que l'utilisateur est authentifié, instancier un objet Utilisateur, et remplissez cet objet avec les données de l'utilisateur en une seule fois (à partir d'une base de données). Ensuite, sérialisez cet objet dans une variable SESSION, et continuez à le dé-sérialiser chaque fois que je veux interroger cet objet pour obtenir des informations. 2) Stocke juste l'ID de l'utilisateur dans la session et interroge la base de données chaque fois que j'ai besoin d'une information relative à l'utilisateur connecté (probablement par une méthode de classe statique).

Quelle méthode serait considérée comme «meilleure pratique»? Ou n'est-ce pas recommandé, et je devrais aller avec une approche complètement différente?

Merci beaucoup à l'avance.

+4

Cela dépend de nombreux facteurs. Par exemple, les modifications apportées aux données utilisateur doivent-elles se répercuter immédiatement sur toutes les sessions? L'accès à la base de données est-il un goulot d'étranglement de votre webapp? –

+2

Je pense que cette question est trop vague. De quoi vous inquiétez-vous? Des requêtes supplémentaires sur la base de données? Les données de session de l'utilisateur sont-elles les plus à jour? Performance en temps? Comment sont sauvegardées vos sessions? Quelle est la configuration de votre base de données? Quelles données stockez-vous dans l'objet Utilisateur? Quelles sont les contraintes sur votre système auth/auth? Il n'y a tout simplement rien à répondre maintenant. – erisco

Répondre

3

Je vous suggère d'avoir un objet sérialisé qui contiendra un identifiant unique pour vous permettre d'obtenir des informations plus tard. Mais, dans cet objet, je garderais les informations fréquemment utilisées comme le nom d'utilisateur si elles sont affichées sur toutes les pages. Essayez de garder les données de la session aussi petites que possible.

Questions connexes