Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Salvare dati in una session o database
lunedì 19 maggio 2014 - 11.52
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 4.0
svipla
Profilo
| Senior Member
361
messaggi | Data Invio:
lun 19 mag 2014 - 11:52
Ciao a tutti
sto sviluppando un portale per la prenotazione online di hotel.
Dato che la ricerca potrebbe produrre molti risultati(quindi devo gestire l'impaginazione) e l'utente potrebbe applicare alcuni filtri(come stelle, fascia prezzo ecc), meglio salvare i risultati della ricerca in tabelle del database o salvare tutto in una session?
Secondo me, se salvo tutto in una session è più veloce recuperare i dati perchè accedo solo una volta al database, ma non so se posso salvare grandi quantità di dati. Se salvo tutto nel database posso salvare grandi quantità di dati, ma il svantaggio è che ogni volta che l'utente cambia pagina o filtro devo interrogare il db e poi non so come gestire l'eliminazione di vecchi dati presenti nel db.
A livello codice i dati verranno salvati in List annidate tra loro.
Cosa mi consigliate di utilizzare?
Grazie mille
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
lun 19 mag 2014 - 15:39
>Ciao a tutti
>sto sviluppando un portale per la prenotazione online di hotel.
>Dato che la ricerca potrebbe produrre molti risultati(quindi
>devo gestire l'impaginazione) e l'utente potrebbe applicare alcuni
>filtri(come stelle, fascia prezzo ecc), meglio salvare i risultati
>della ricerca in tabelle del database o salvare tutto in una
>session?
Perchè devi salvare i risultati della ricerca?
Non sono il frutto di una select che deriva dai vari filtri impostati ? Stelle fascia prezzo etcc?
>
>Secondo me, se salvo tutto in una session è più veloce recuperare
>i dati perchè accedo solo una volta al database, ma non so se
>posso salvare grandi quantità di dati. Se salvo tutto nel database
>posso salvare grandi quantità di dati, ma il svantaggio è che
>ogni volta che l'utente cambia pagina o filtro devo interrogare
>il db e poi non so come gestire l'eliminazione di vecchi dati
>presenti nel db.
>
>A livello codice i dati verranno salvati in List annidate tra
>loro.
>
>Cosa mi consigliate di utilizzare?
A prescindere dalla necessità di salvare i risultati, che non ho capito.
L'uso delle session deve essere parsimonioso ed attento, escluderei di salvarli in una session.
Ricordati che fai uso della ram del server.
Ricordati che le session sono soggette a scadenza, corri quindi il rischio di perdere i dati a causa della scadenza della session.
PS. Vorrei capire meglio perché vuoi salvare i risultati delle ricerche eseguite.
CIAO
>
>Grazie mille
Riccardo D'Aria
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
mar 20 mag 2014 - 09:11
usa la cache di Aspnet
Andrea Restucci - Web Developer
svipla
Profilo
| Senior Member
361
messaggi | Data Invio:
mar 20 mag 2014 - 09:39
Ciao e grazie per l'aiuto
Vorrei salvare la ricerca perchè:
1- I risultati non saranno visualizzati in un'unica pagina, ma in più pagine. Quindi, se utilizzo un gridview o un repeater, ad ogni cambio pagina dovrei recuperare i dati.
2- Durante la visualizzazione, l'utente potrebbe selezionare dei nuovi filtri o cambiare l'ordinamento dei dati.
3- Ho 2 fasi di visualizzazione: visualizzazione della miglior offerta da parte di tutti gli hotel e visualizzazione dell'offerta scelta + altre camere dell'hotel scelto. Nella prima fase mi salvo tutti i dati e recuperarli nella seconda fase senza rieseguire la query.
Sto "impazzendo" per capire come salvare e dove salvarli. Sono indeciso se utilizzare dataset o List.
Ancora grazie
svipla
Profilo
| Senior Member
361
messaggi | Data Invio:
mar 20 mag 2014 - 09:44
Ciao Andrea
sto valutando anche questa possibilità. Ma leggevo in alcuni forum e articoli che la session è ha livello utente, mentre cache è un oggetto globale a livello di applicazione. Molti consigliavano l'uso di session.
Non so. Vorrei una soluzione veloce
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 20 mag 2014 - 09:51
Io non li salverei affatto.
Ad ogni interrogazione li riestrai.
Poi non so quanti ne sono.
Comunque un pò di elementi per prendere la decisione adesso li hai.
Ciao Facci sapere
Riccardo D'Aria
svipla
Profilo
| Senior Member
361
messaggi | Data Invio:
mar 20 mag 2014 - 11:06
Ancora una domanda: supponiamo che utilizzi un gridview o un qualsiasi altro controllo per l'impaginazione. Se ogni volta carico solo i dati da visualizzare nella pagina, come fa il controllo ha capire che in realtà quella che sto visualizzando è, per esempio, pagina 2/100? Se non sbaglio, un gridview si crea il numero di pagine in base ai dati che passo.
Grazie ancora
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 20 mag 2014 - 12:31
una grid view va configurata per la paginazione.
Sono proprietà della GridView:
AllowPaging ed altre proprietà per configurare al meglio la paginazione.
Puoi partire da qui:
http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.gridview.allowpaging%28v=vs.110%29.aspx
Ciao se tutto ok chiudi il post e facci sapere
Riccardo D'Aria
svipla
Profilo
| Senior Member
361
messaggi | Data Invio:
mar 20 mag 2014 - 13:28
Ancora grazie Riccardo
Utilizzo già i GridView, per suddividere automaticamente i record in pagine il gridview deve sapere il numero di record, quindi ogni volta devo leggere tutti i record da db e passare i record al gridview. Quindi non vado a leggere da db solo i record della pagina che voglio visualizzare. Giusto o sbaglio?
Grazie
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 20 mag 2014 - 17:32
>Ancora grazie Riccardo
>Utilizzo già i GridView, per suddividere automaticamente i record
>in pagine il gridview deve sapere il numero di record, quindi
>ogni volta devo leggere tutti i record da db e passare i record
>al gridview. Quindi non vado a leggere da db solo i record della
>pagina che voglio visualizzare. Giusto o sbaglio?
Giusto devi leggere dal DB tutti i record che vanno a popolare la griglia, poi è lei che secondo i settaggi che gli hai dato a eseguire la paginazione, posizionando n record per ogni pagina.
Ciao
chiudi il post se tutto è OK
>Grazie
Prego
Riccardo D'Aria
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !