Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Gestione Tag e come strutturarli in DB: idee e suggerimenti?

    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:
    codice:
    ID | TitoloPost | CorpoPost     | Tags
    1  | Ciao         | Benvenuti qui| tag1, tag2, tag3
    In questo modo per estrarli mi basta prendere il campo Tags e splittare..
    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):

    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
    Questo comporta che per estrarre i tag, e fare successivamente un match devo fare una operazione moolto più lunga:
    - 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?

  2. #2
    se i tag sono generalmente diversi, ti bastano 2 tabelle. se invece sono molto ripetitivi (o se vuoi che i tag vengano gestiti da una redazione) la soluzione con tre tabelle è la migliore. scarterei la soluzione mono-tabella.

  3. #3
    Per soluziona a due tabelle intendi tipo:
    codice:
    ID | ID_Post | Tags
    1  | 1          | Tag1,Tag2, Tag3
    Potrebbe essere la soluzione migliore.
    Anche perchè a quel punto potrei fare una unica tabella centralizzata per tutti i contenuti (inserendo gli ID del contributo, e la tipologia di contributo..)

    Other suggest da parte di altri?

  4. #4
    a me sembra UNA tabella...

  5. #5
    In che senso..
    io pensavo a più tabelle: una per ciascun 'contenuto' (tipo post), ed un altra solo per i tag e l'id del contributo corrispondente.
    codice:
    --- Post
     ID | TitoloPost | CorpoPost
     1 | Ciao | Benvenuti qui
    
    --- Tag
    ID | ID_Post | Tags
     1 | 1 | Tag1,Tag2, Tag3

  6. #6
    la tabella dei tag strutturala 'verticalmente'

    id - postId - tag

  7. #7
    Originariamente inviato da optime
    la tabella dei tag strutturala 'verticalmente'

    id - postId - tag
    Che vuol dire 'verticalmente'? :master:

  8. #8
    orizzontale

    id:1 postid:1 tag:1,2,3

    verticale

    id:1 postid:1 tag:1
    id:1 postid:1 tag:2
    id:1 postid:1 tag:3


  9. #9

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 © 2026 vBulletin Solutions, Inc. All rights reserved.