Sto creando un sistema in cui gli articoli avranno uno o più tag.
Ora ci sarà una tabella elemento che memorizzerà ogni elemento e una tabella tag , che memorizzerà tutti i tag utilizzati nel sistema.
La mia domanda è: qual è il miglior design che posso avere che mi consenta di collegare elementi ai rispettivi tag e registrare quante volte un oggetto ha ricevuto un particolare tag da un utente?
Ad esempio, mi chiedo se dovrei creare una terza tabella che assocerebbe un particolare elemento a un particolare tag e quante volte è stato selezionato quel tag. I campi dovrebbero essere come questo: item_id, tag_id, tag_hits - dove tag_hits è il numero di volte in cui il tag è stato utilizzato. Queste soluzioni assocerebbero tutti gli articoli con i loro tag in un'unica tabella.
O l'altra soluzione a cui sto pensando è creare una tabella per ciascun elemento e registrare ogni tag e la quantità di tempo in cui il tag è stato utilizzato. Quindi, per itemX vorrei creare una tabella itemX e i campi sarebbero: tag_id, tag_hits. Per un altro articoloY, creerei una tabella chiamata itemY con gli stessi campi. Quindi per ogni articolo, ci sarebbe una tabella che la associa ai suoi tag. Ora potrebbero esserci centinaia di migliaia di elementi in questo sistema.
Suppongo che gli sviluppatori di questo sito web debbano fare una considerazione simile perché ogni domanda è taggata. E puoi sfogliare le domande per tag. Il mio sistema avrà funzionalità simili.
Qualcuno può consigliare una soluzione di design, tenendo conto di tutto ciò che ho detto e della considerazione delle prestazioni. Si prega di indicare dove si pensa che l'indicizzazione potrebbe aiutare anche. Io uso i database SQL nel mio sviluppo, ma se pensi che una soluzione no-SQL lo faccia, per favore suggerisci un progetto seguendo queste linee. per favore sii molto specifico.
Grazie, Ron