|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2008
Città: Nel mio studio
Messaggi: 168
|
[SQL] pagine web e query
Vi espongo subito il mio dubbio di natura teorica e poi una domandina più pratica.
Per hobby mi diletto nella programmazione web (attualmente .net), ma in tutti i corsi, tutorial sul web, libri ecc ecc non si fa mai accenno e non si discute il carico sul server prodotto dal rendering di una pagina web. Sapete dirmi se c'è qualche modo per sapere dopo aver realizzato una pagina quali parametri guardare per capire se risulta pesante la sua costruzione. Ad esempio al massimo quante query possono esserci all'interno di una pagina? Passiamo alla pratica: Gestisco un sito con annesso forum, vorrei dare la possibilità agli utenti registrati di votare le foto caricate sul sito dai loro colleghi. Ho già abbozzato la struttura dell' "entità" foto (comprensiva della valutazione), mi rimane il dubbio di come memorizzare i voti degli utenti perchè l'obiettivo è quello di non far votare più volte la stessa foto. (praticamente il servizio dovrà essere uguale a quello di youtube per i video) Dato che non so rispondere alla prima domanda mi sto facendo tante di quelle pippe mentali che non immaginate nemmeno, per ridurre al minimo il numero di query e la quantità di dati letti. Per dare un'idea dei numeri in gioco: - circa 1000 utenti attivi - sulle 200 foto per ora, ma prevedo un aumento in futuro Ho anche abbozzato una possibile soluzione, ma prima di presentarvela aspetto qualche vostro suggerimento (giusto per non influenzare le vostre idee) Grazie a tutti per l'attenzione
__________________
Since Rocco Siffredi, the saying "pain in the ass" got a total new meaning |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Wien
Messaggi: 435
|
Per la tua seconda domanda io farei una cosa del genere:
User(userid, nome, ecc) Foto(fotoid, tuttigliattributichevuoi) Votazione(userid, fotoid, voto) FK: Votazione(userid) references User(userid)
__________________
"Sono 126 miglia per Chicago. Abbiamo il serbatoio pieno, mezzo pacchetto di sigarette, è buio, e portiamo tutt'e due gli occhiali da sole" |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2008
Città: Nel mio studio
Messaggi: 168
|
La struttura per la memorizzazione dei voti è come quella che avevo pensato io.
Inoltre per evitare ogni volta che la foto viene visualizzata calcolare il voto medio e le relative "stelline", nella tabella "foto" memorizzo il numero totale dei voti, il numero di votanti e le stelline attuali come intero (alla fine saranno 5 stelline con i mezzi voti). In questo modo uso i calcoli in virgola mobile solo nel momento in cui un utente vota una foto. Visto che visualizzo 6 foto per volta, mi sorge il dubbio su come riconoscere quelle già votate dall'utente X. Faccio una query sulla tabella "voti" nella quale cerco solo quelli dell'utente X e poi scorro tra i risultati se è presente una foto di quelle visualizzate o inserisco direttamente nel WHERE gli id e faccio fare il lavoro di selezione al dbms? Nessuno sa rispondere alla prima domanda?
__________________
Since Rocco Siffredi, the saying "pain in the ass" got a total new meaning |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Jul 2008
Città: Nel mio studio
Messaggi: 168
|
Up
Magari qualcuno è tornato dalle vacanze e ha le risposte ai miei quesiti
__________________
Since Rocco Siffredi, the saying "pain in the ass" got a total new meaning |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Spiegati meglio: vuoi visualizzare le prossime 6 foto che non sono state dall'utente ?
|
|
|
|
|
|
#6 | ||
|
Member
Iscritto dal: Jul 2008
Città: Nel mio studio
Messaggi: 168
|
Quote:
Mi piacerebbe trovare un modo efficiente (minimizzare il numero di query) per capire quali foto sono già state votate da X e quindi abilitare il voto solo per le rimanenti. Adesso se rileggi il mio post precedente magari ti risulta il tutto più chiaro Mi piacerebbe più di tutto ricevere una risposta alla prima domanda del primo post Quote:
__________________
Since Rocco Siffredi, the saying "pain in the ass" got a total new meaning |
||
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non è possibile rispondere a questa domanda perché varia troppo in funzione delle prestazioni del server.
Metti comunque un timer all'inizio e alla fine della pagina e dopo lo visualizzi. Così puoi valutare. Per l'SQL: SELECT fotoid.*, temp.userid AS votato FROM Foto LEFT JOIN (SELECT * FROM Votazione WHERE userid = userid_che_sta_visitando_il_sito) AS temp ON Foto.fotoid = temp.fotoid WHERE Foto.userid = userid_di_cui_si_stanno_visualizzando_le_foto; Se votato è uguale all'userid allora significa che l'utente ha già votato per quella foto. Se è uguale a NULL allora non ha votato. |
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Jul 2008
Città: Nel mio studio
Messaggi: 168
|
Proverò questa soluzione, grazie mille.
__________________
Since Rocco Siffredi, the saying "pain in the ass" got a total new meaning |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:13.




















