Ciao a tutti,
La gestione dei tag è importante, visto che sempre più i contenuti vengano marcati con queste paroline magiche.
Indispensabile però diventa strutturarli in un database in modo corretto ed efficiente, per usarli senza complicazioni.
Io attualmente inserisco i tag come lista in un campo del database aggiuntivo a quelli del singolo contenuto:
In questo modo per estrarli mi basta prendere il campo Tags e splittare..codice:ID | TitoloPost | CorpoPost | Tags 1 | Ciao | Benvenuti qui| tag1, tag2, tag3
se invece devo fare dei match, li faccio direttamente sul campo Tags tipo:
SELECT ID from TabPost WHERE Tags LIKE '%tag1%' OR '%Tag2%' ORDER BY ID DESC
Wordpress invece ha una gestione completamente diversa.
Alla tabella dei contenuti (che chiamiamo Post), sono presenti anche una tabella Tag (Tag) e un'altra per correlare i primi ai secondi (Post2Tag):
Questo comporta che per estrarre i tag, e fare successivamente un match devo fare una operazione moolto più lunga:codice:--- Post ID | TitoloPost | CorpoPost 1 | Ciao | Benvenuti qui --- Tag ID | Tag 1 | Tag1 2 | Tag2 3 | Tag3 4 | Tag1 -- Post2Tag ID_Tag | ID_Post 1 | 1 2 | 1 3 | 1 4 | 2
- Prendere l'ID del post,
- Estrarre da Post2Tag la chiave dei Tag con l'ID del Post
- Trasformare l'ID del tag nel corrispettivo valore 'testuale'
...
Una volta presi devo fare un match
- cercare la parola nella tabella Tag trovando l'ID_Tag
- fare un match dei post nella tabella Post2Tag con l'ID_Tag preso prima
- Prendere finalmente i post ordinandoli per ID DESC
Uno 'sbattimento' assurdo..
Io quindi rimarrei, come gestione e strutturazione, alla mia in cui ho un solo campo con la lista dei tags...
Voi che esperienza avete?
come li gestite/strutturate?



Rispondi quotando
