Topic: Pubblico - Composto da 2 Posts di 2 Utenti.
| 26 Luglio, 2011 13:17 | #1 | ||
|---|---|---|---|
|
Ciao a tutti, avrei bisogno del vostro aiuto perchè navigo nel nulla e non ho molto tempo. Il mio problema è questo, nel DB ho una tabella APPLICAZIONI, una tabelle UTENTI e una tabella FEEDBACK (più altre tabelle che ora non ci interessano) Ogni utente che scarica una applicazione dal market può lasciare un voto, ovvero dare all'app da 1 a 5 stelline. Nella tabella FEEDBACK sic rea quindi un record della serie: Quindi dopo che tanti utenti hans caricato e votato l'app avrò: Il mio problema è questo: nella tabella APPLICAZIONI ogni applicazione ha un campo VOTO_MEDIO. Quando uno sviluppatore inserisce una nuova app questio campo di default assume valore 0. Ma poi man mano che la gente scarica e vota questo campo dovrebbe avere come valore la media dei voti: x esempio coi dati sopra dovremmo trovare tutti i feedback con APP_ID =1 sommare i valori dei campi voto (4+4+1+3 = 12) e dividere la somma x il numero di righe (4 in questo caso) e quindi il voto medio sarebbe 3. A me non interessa che il valore del campo VOTO_MEDIO sia aggiornato in tempo reale ogni volta che un nuovo utente aggiunge un feedback (mi sembra esagerato e pesante), vorrei che una volta al giorno il db aggiornasse il valore del campo VOTO_MEDIO di tutte le applicazioni, così lavora sl una volta di notte e di giorno il valore è li pronto. che o facesse mysql non php con delle query... Il problema è che non ho la minima ide di come farlo in particolare. E come gli dico di aggiornarli una volta al giorno? Qualcuno mi ha parlato di procedure o meglio di funzioni che si salvan in mysql e poi le uso nella mia tabella, della serie vado cn phpmyadmin e nella tabella APPLICAZIONI dico che il valore del campo VOTO_MEDIO sia calcolato dalla funzione da me creata MY_FUNC.....e cn uno scheduler farglielo fare una volta al di......ma di ste cose non so niente, non so se sia la strada giusta e qualche esemoio mi sarebbe comodo. Grazie mille e scusate se mi sono dilungato, era per far capire bene cosa devo fare.
Ultima modifica 26 Luglio, 2011 13:21 di sgotenks |
|||
| 10 Agosto, 2011 01:36 | #2 | ||
|---|---|---|---|
|
A meno che gli utenti non votino minimo una volta al secondo, usa pure un trigger sulle insert. Aggiornerai l'altra tabella in tempo reale, ed è piuttosto semplice: Per farlo una volta al giorno dovresti usare un evento (cerca CREATE EVENT) che chiama una stored procedure. Ma sinceramente credo che sia una complicazione inutile. |
|||
Condividi su:
Loggati o Registrati per replicare