Per ottenere un semplice elenco di elementi correlati basati sui tag, le soluzioni di base è questa:
3 tavoli, uno con gli articoli, uno con i tag e uno con la connessione. La tabella delle connessioni è composta da due colonne, una per ciascun id delle rimanenti tabelle. Una voce nella tabella delle connessioni collega un tag con un elemento inserendo i rispettivi ID in una riga.
Ora, per ottenere quella lista di elementi correlati.
recuperare tutti gli elementi che condividono almeno un tag con l'elemento originale. assicurati di recuperare i tag insieme agli oggetti, quindi utilizza un semplice meccanismo di classificazione per determinare quale elemento condivide il maggior numero di tag con quello originale. ogni tag aumenta la pertinenza della relazione di uno.
A seconda delle tag-abitudini, potrebbe essere intelligente per aggiungere un po 'contro-meccanismo per evitare che le grandi etichette generali da confondere la rilevanza. per raggiungere questo obiettivo, si potrebbe dare maggior peso ai tag di sotto di una certa soglia di elettrodomestici. Una soglia che ha generalmente funzionato bene per me, è total_number_of_tag_appliances/total_number_of_tags, che si traduce nel numero medio di elettrodomestici. Se il tag apparecchio-count è minore della media, il rapporto-pertinenza aumenta doppio.
Ecco anche una domanda correlata http://stackoverflow.com/questions/18019976/mysql-php-find-similar-related-items-by-tag-taxonomy –