![]() |
![]() |
|
| Condividi questo contenuto nei Social Network: |
|
Tweet |
|
|
|
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. |
||||
|
|||||||||
|
|
LinkBack | Strumenti di discussione |
|
|
#1 (permalink) |
|
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?? | |
|
|
|
|
|
|
|
#2 (permalink) |
|
ModSenior
|
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. |
|
__________________
![]() Adventure Park Solution === Wireless Physical Computing === Pittura Vetro Rovigo Diventa Moderatore - Seo Power |
|
|
|
|
|
|
#3 (permalink) |
|
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... | |
|
|
|
|
|
#4 (permalink) |
|
ModSenior
|
Allora forse io sto capendo un altra cosa.
Tu devi mandare lo stesso messaggio a tutti? O messaggi privati a utenti diversi? |
|
__________________
![]() Adventure Park Solution === Wireless Physical Computing === Pittura Vetro Rovigo Diventa Moderatore - Seo Power |
|
|
|
|
|
|
#6 (permalink) |
|
ModSenior
|
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? |
|
__________________
![]() Adventure Park Solution === Wireless Physical Computing === Pittura Vetro Rovigo Diventa Moderatore - Seo Power |
|
|
|
|
|
|
#8 (permalink) |
|
ModSenior
|
Bene infine lo stesso messaggio puo essere inviato a piu categorie?
|
|
__________________
![]() Adventure Park Solution === Wireless Physical Computing === Pittura Vetro Rovigo Diventa Moderatore - Seo Power |
|
|
|
|
|
|
#10 (permalink) |
|
ModSenior
|
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. |
|
__________________
![]() Adventure Park Solution === Wireless Physical Computing === Pittura Vetro Rovigo Diventa Moderatore - Seo Power |
|
|
|
|
|
|
#12 (permalink) |
|
ModSenior
|
Molto bene, l'unione fa la forza.
![]() |
|
__________________
![]() Adventure Park Solution === Wireless Physical Computing === Pittura Vetro Rovigo Diventa Moderatore - Seo Power |
|
|
|
|
|
|
#13 (permalink) |
|
Consiglio Direttivo
|
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-%" $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ì!! |
|
|
|
|
|
|
#15 (permalink) |
|
Consiglio Direttivo
|
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ì!! |
|
|
|
|