Dove devo archiviare i dati della mia sessione utente?

1

Dovrei memorizzare solo l'ID di sessione dell'utente insieme ai dati in una tabella, o dovrei memorizzare l'ID di sessione dell'utente in una tabella e accedere a una matrice di dati dall'ID di sessione dell'utente?

e perché?

Cos'è più efficiente?

Non genererò alcun rapporto.

    
posta Ryan 28.07.2011 - 01:00
fonte

2 risposte

0

Alcuni commenti direttamente o intorno alla tua domanda:

  1. Qualunque cosa tu incapsuli il codice, così puoi cambiarlo più tardi.
  2. Utilizza tutto ciò che è integrato nel tuo framework, se possibile.
  3. In genere lasciare i dati di sessione digitati debolmente (in un array o in un dizionario) non è tanto desiderabile quanto renderlo strongmente tipizzato, IMHO. Per lo meno scoraggia la gente dal buttare tutto lì dentro senza pensarci. Se hai dati di sessione strongmente tipizzati che potrebbero portarti alla progettazione della tabella in base al modo in cui stai mappando tutti gli altri oggetti alle tabelle. (Ovviamente, la maggior parte dei framework fornisce dati tipizzati debolmente, ma è sempre possibile memorizzare solo una cosa che ti porta al proprio oggetto di sessione specifico dell'applicazione).
risposta data 28.07.2011 - 02:22
fonte
0

Il modo più efficiente per recuperare i dati della sessione è di prelevarli dalla memoria, cioè dall'oggetto di sessione fornito dal framework, ovviamente. Ora, se vuoi mantenere le informazioni relative a un determinato utente (il suo "profilo" in breve) per ricordarlo tra una sessione e l'altra hai diverse tecniche, come persistere in / recuperare da:

  • un file con dati serializzati (un file per utente)
  • una tabella "utente" con dati serializzati (un record per utente)
  • una tabella di database standard con l'ID utente e una colonna per ogni informazione

Dato che hai indicato di non voler generare alcun rapporto sugli utenti (che può essere fatto con la soluzione 3), puoi anche persistere serializzando i dati ogni volta che l'utente aggiorna il suo profilo, e deserializzare e leggere ogni volta che si collega alla tua applicazione. Vorrei memorizzare i dati in un database perché non mi piace gestire un database E file e avere file sul server web, ma questo è gusto personale.

Inoltre, la password dell'utente non dovrebbe essere nella sessione, o se è il caso dovrebbe essere un hash della password.

    
risposta data 01.08.2011 - 08:01
fonte

Leggi altre domande sui tag