- Home
- Categorie
- Coding e Sistemistica
- Coding
- Gestione avvisi tramite DB
- 
							
							
							
							
							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. 
 
- 
							
							
							
							
							
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! 
 
- 
							
							
							
							
							Molto bene, l'unione fa la forza.  
 
- 
							
							
							
							
							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 defaultQuando l'utente con id 3, associato alla categoria id 5, si logga, fai eseguire la seguente query: 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. 
 
- 
							
							
							
							
							
Mmmh si, potrebbe essere un'altra soluzione... Ora vedo quale potrebbe essere la migliore attuabile nel mio caso.. Grazie!! 
 
- 
							
							
							
							
							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. 
 
- 
							
							
							
							
							
Forse l'unico "problema" sarebbe poi la lunghezza del record dove memorizzo gli utenti che hanno letto il massaggio.. 
 
- 
							
							
							
							
							Utilizzando un campo TEXT hai 2^16 caratteri disponibili, con LONGTEXT 2^32. Un test che si potrebbe fare per vedere il risparmio di risorse è creare 1000 record (10 utenti * 100 avvisi) a simulare degli avvisi completi e poi creare 100 record che simulino i singoli avvisi e che nel campo id_utente contengano 10 id (-0-1-2-3-4-5-6-7-8-9-10-), e provare per ognuno dei due metodi quale occupa più spazio.  P.S. ovviamente non dico che sia fattibile, ma è un'idea che mi è venuta leggendo il thread.  
 
- 
							
							
							
							
							
No no ma ci credo che risparmio spazio  
 
- 
							
							
							
							
							E' vero, questa soluzione mi piace di più, d'altronde all'università avevo preso solo 20 sull'esame di ottimizzazione ah ah ah.