Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 19-11-09, 20:36   #1 (permalink)
 
L'avatar di il_gege
 
Data di registrazione: May 2009
Messaggi: 97
Invia un messaggio tramite MSN a il_gege Invia un messaggio tramite Skype a il_gege
Gestione avvisi tramite DB

Vi pongo un quesito.

Ho l'applicativo web che sto creando.
Solite cose con profilo personale, operazioni varie etc etc.

Volevo implementare un sistema anche di gestione avvisi.

Vi spiego meglio:
Io, amministratore supremo scrivo X nuovi avvisi, gli memorizzo in una data tabella.
L'utente Pippo si logga e vede questi avvisi in primo piano. Di fianco ad ogni avviso c'è la possibilità di segnarlo come letto.

Come faccio ad implementare un lavoro del genere senza creare mille e più tabelle, e senza inserire x*y (dove x è il numero di messaggi e y il numero di utenti) righe in una tabella??
il_gege non in linea   Rispondi citando
Vecchio 19-11-09, 21:05   #2 (permalink)
ModSenior
 
L'avatar di marcocarrieri
 
Data di registrazione: Jul 2009
Ubicazione: Rovigo
Messaggi: 14,723
Invia un messaggio tramite MSN a marcocarrieri Invia un messaggio tramite Skype a marcocarrieri
Potresti creare una tabella di utenti, una di messaggi, all'interno della quale fai un riferimento incrociato con la prima.
Registri cioè l'id dell'utente nella tabella dei messaggi.

Ogni utente che si collega fa una query sulla tabella generale dei messaggi, se ne esistono con id utente uguale al loro lo fai vedere. Se cliccano sul pulsante letto metti a true il flag "letto" della tabella messaggi e cosi via.
marcocarrieri ora è in linea   Rispondi citando
Vecchio 19-11-09, 21:13   #3 (permalink)
 
L'avatar di il_gege
 
Data di registrazione: May 2009
Messaggi: 97
Invia un messaggio tramite MSN a il_gege Invia un messaggio tramite Skype a il_gege
Il chè vorrebbe dire che io devo inserire un messaggio tante volte quanti sono gli utenti presenti nel DB..

Non è una soluzione un pò poco pratica?

Forse magari con una vista incrociata riuscire a farlo senza dover creare altre tabelle, oltre a quella dei messaggi in se...

[EDIT]
Cavolata, perchè nelle viste non posso aggiungere il campo booleano...
il_gege non in linea   Rispondi citando
Vecchio 19-11-09, 21:27   #4 (permalink)
ModSenior
 
L'avatar di marcocarrieri
 
Data di registrazione: Jul 2009
Ubicazione: Rovigo
Messaggi: 14,723
Invia un messaggio tramite MSN a marcocarrieri Invia un messaggio tramite Skype a marcocarrieri
Allora forse io sto capendo un altra cosa.
Tu devi mandare lo stesso messaggio a tutti?
O messaggi privati a utenti diversi?
marcocarrieri ora è in linea   Rispondi citando
Vecchio 19-11-09, 21:40   #5 (permalink)
 
L'avatar di il_gege
 
Data di registrazione: May 2009
Messaggi: 97
Invia un messaggio tramite MSN a il_gege Invia un messaggio tramite Skype a il_gege
Lo stesso messaggio a tutti (o meglio, nello specifico, messaggi diversi a categorie diverse di utenti, però il concetto è lo stesso...)
il_gege non in linea   Rispondi citando
Vecchio 19-11-09, 21:49   #6 (permalink)
ModSenior
 
L'avatar di marcocarrieri
 
Data di registrazione: Jul 2009
Ubicazione: Rovigo
Messaggi: 14,723
Invia un messaggio tramite MSN a marcocarrieri Invia un messaggio tramite Skype a marcocarrieri
Allora una cosa più elaborata ma concettualmente sempre lo stesso.
Definiamo alcune cose prima che elaboro meglio l'idea.
Un utente può appartenere a più categorie?
marcocarrieri ora è in linea   Rispondi citando
Vecchio 20-11-09, 01:13   #7 (permalink)
 
L'avatar di il_gege
 
Data di registrazione: May 2009
Messaggi: 97
Invia un messaggio tramite MSN a il_gege Invia un messaggio tramite Skype a il_gege
No, un utente appartiene ad una categoria specifica.
il_gege non in linea   Rispondi citando
Vecchio 20-11-09, 12:36   #8 (permalink)
ModSenior
 
L'avatar di marcocarrieri
 
Data di registrazione: Jul 2009
Ubicazione: Rovigo
Messaggi: 14,723
Invia un messaggio tramite MSN a marcocarrieri Invia un messaggio tramite Skype a marcocarrieri
Bene infine lo stesso messaggio puo essere inviato a piu categorie?
marcocarrieri ora è in linea   Rispondi citando
Vecchio 20-11-09, 15:26   #9 (permalink)
 
L'avatar di il_gege
 
Data di registrazione: May 2009
Messaggi: 97
Invia un messaggio tramite MSN a il_gege Invia un messaggio tramite Skype a il_gege
Esatto..
il_gege non in linea   Rispondi citando
Vecchio 20-11-09, 21:10   #10 (permalink)
ModSenior
 
L'avatar di marcocarrieri
 
Data di registrazione: Jul 2009
Ubicazione: Rovigo
Messaggi: 14,723
Invia un messaggio tramite MSN a marcocarrieri Invia un messaggio tramite Skype a marcocarrieri
Allora io suddividerei il problema nel modo seguente.

Una tabella utenti, e tra gli altri campi un campo idcategoria.
Questo serve per identificare attraverso questo id a quale categoria l'utente appartiene.

Una tabella categorie con i soliti id, nome categoria e altri eventuali campi.

Una tabella messaggi all'interno della quale vanno salvati tutti i messaggi inviati.
Tra gli altri campi abbiamo i campi id categoria e id utente per risalire e sapere a che categoria appartiene il messaggio e l'id utente.

Quando sei nella categoria "A", e clicchi su invia messaggio, lui deve controllare quanti utenti appartengono a quella categoria, e salvare quindi nella tabella messaggi tanti messaggi tanti quanti sono gli utenti delle medesima.

Infine occorre anche un campo "letto" da settare a true quando l'utente clicca sul pulsante letto del messaggio, a questo messaggio bastera passare l'id del messaggio ed il gioco è fatto.

Spero possa essere chiaro anche per te, e non solo per me che ho già l'idea in testa.

Saluti, Marco.
marcocarrieri ora è in linea   Rispondi citando
Vecchio 20-11-09, 21:49   #11 (permalink)
 
L'avatar di il_gege
 
Data di registrazione: May 2009
Messaggi: 97
Invia un messaggio tramite MSN a il_gege Invia un messaggio tramite Skype a il_gege
E' esattamente un pò la soluzione che avevo in mente io, è anche la soluzione più logica che può venire in mente.

Grazie per l'aiuto Marco!
il_gege non in linea   Rispondi citando
Vecchio 20-11-09, 21:52   #12 (permalink)
ModSenior
 
L'avatar di marcocarrieri
 
Data di registrazione: Jul 2009
Ubicazione: Rovigo
Messaggi: 14,723
Invia un messaggio tramite MSN a marcocarrieri Invia un messaggio tramite Skype a marcocarrieri
Molto bene, l'unione fa la forza.
marcocarrieri ora è in linea   Rispondi citando
Vecchio 22-11-09, 10:45   #13 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,845
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Un'altra strada forse percorribile potrebbe essere quella di creare un solo messaggio, associato ad un id categoria, e poi un campo che raccolga in questo formato gli id degli utenti:
-0-1-16-19-58-
-0- sarà il primo di default

Quando l'utente con id 3, associato alla categoria id 5, si logga, fai eseguire la seguente query:

Codice:
SELECT * FROm tabella WHERE id_categoria='5' AND id_utenti NOT LIKE "%-3-%"
Quando l'utente cliccherà sul tasto "letto" aggiornerai il campo degli id utenti che han letto aggiungendo 3- alla fine:
$id_utenti=$id_utenti."3-";
e quindi aggiorni la tabella.
In questa maniera crei un solo record per ogni messaggio.
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!
Samyorn non in linea   Rispondi citando
Vecchio 22-11-09, 13:28   #14 (permalink)
 
L'avatar di il_gege
 
Data di registrazione: May 2009
Messaggi: 97
Invia un messaggio tramite MSN a il_gege Invia un messaggio tramite Skype a il_gege
Mmmh si, potrebbe essere un'altra soluzione...

Ora vedo quale potrebbe essere la migliore attuabile nel mio caso..

Grazie!!
il_gege non in linea   Rispondi citando
Vecchio 22-11-09, 20:33   #15 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,845
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Di nulla, è corretto anche lo sviluppo fatto con marcocarrieri, ma pensando al poi, immagina di avere 100 utenti e di mandare 100 avvisi l'anno.
In un solo anno creerai 10000 record per soli 100 avvisi categorizzati, risparmiare risorse significa anche risparmiare dindini e tempi di esecuzione.
Con questa soluzione, se applicabile ovviamente, avresti solo 100 record.
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!
Samyorn non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 16:38.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.