Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Gestire Tag nel blog

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105

    Gestire Tag nel blog

    Ciao ho deciso di inserire i tag per gli articoli del mio blog tuttavia ho dei problemi nello strutturare il tutto.
    Ho creato nel database una tabella tag che contiene i campi 'id' (contatore), 'nome' e 'occorrenze' (lo uso magari per una tag cloud e corrisponde a quante volte il tag viene utilizzato).
    Fin qui tutto ok, ho già sviluppato il codice per l'inserimento nel db ecc ecc.
    Ora sorge il problema: io voglio che ogni articolo abbia i suoi tag tuttavia da come ho strutturato il tutto e come avrete sicuramente notato non c'è collegamento tra la tabella articolo e quella tag.
    Come li collego??
    Questo è il funzionamento attuale: inserisco articolo -> specifico 5 tag corrispondenti all'articolo -> i 5 tag finiscono nella tabella tag. Se esistono già nel database incremento semplicemente il numero delle occorrenze. A questo punto hanno perso ogni legame con l'articolo che a cui erano legati. Qualche idea?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    questo ti serve ai fini della ricerca dell'articolo?

    io sinceramente ho impostato la tagcloud in questo modo:
    l'utente ricerca la parola: se questa parola si ritrova nel titolo o nell'articolo intero me la inserisce nella tabella tag. poi dico che se non esiste inserisci e valore 1 altrimenti se esiste inserisci e incrementa il valore.
    sfruttando i termini cercati e le occorrenze ho creato una tag cloud cliccabile. i termini una volta cliccati interrogano il mio motore di ricerca che ricercano gli articoli relativi al termine.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Si ma nel tuo caso tutto parte dalla ricerca dell'utente. Nel caso in cui l'utente "non cerca" non si creerà il sistema da te descritto.. o sbaglio?
    Io vorrei invece che il tagcloude si formasse in base agli articoli e in più, come da te suggerito, sulla ricerca, che mi sembra un ottima idea.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    si solo nel caso di ricerca..

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Ho una mezza idea..Oltre alla tabella tag aggiungo un campo tag alla tabella articoli che contiene una stringa di tag separati da virgola. In questo modo quando estraggo l'articolo con php metto in un array questi tag.
    Quando clicco su uno di questi tag ho bisogno di estrarre dal database tutti quegli articoli che hanno in comune con quello appena estratto almeno un tag.
    Dunque potrei estrarre tutti le stringhe tag di tutti gli articoli e tramite php controllare se i singoli tag sono contenuti nelle stringhe..
    Quindi facciamo finta che ho 5 articoli e che le stringhe possono contenere massimo 5 tag.
    Allora estraggo un articolo e inserisco in un array i 5 tag.
    A questo punto estraggo dal database le 4 stringhe tag dei rimanenti 4 articoli.
    Ora controllo che i 5 tag siano contenuti nelle quattro stringhe. Se nessun confronto ha esito positivo vorrà dire che i 4 articoli rimasti nel database non hanno nulla a che fare con quello appena estratto..
    Quindi la tabella TAG la continuerei ad usare solo per il tagcloude..
    Può andare?

  6. #6
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    L'approccio corretto per gestire una relazione molti-a-molti, come nel casto articolo-tag, è usare una tabella ponte: crea una tabella in mysql che si chiama articolo_tag, con 2 campi, articolo_id e tag_id, chiave primaria su entrambi i campi e chiave esterna verso i rispettivi id.
    A quel punto nella table tag non ti serve tenere il numero di occorrenze, basta fare dei semplici count su articolo_tag

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    105
    Ecco quello che mi serviva! Grazie mille Massimiliano

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.