Ciao a tutti,
ho un database in MySQL organizzato come quello in figura http://s2.postimage.org/8nmeputvr/database.png.
Vorrei trovare una query che, dato un libro, mi trovi i 5 libri più simili a quello dato.
I criteri per la similitudine sono (in ordine di importanza):
- almeno un autore in comune, stessa collana, almeno un argomento in comune;
- almeno un autore in comune, almeno un argomento in comune;
- almeno un argomento in comune.
Come potrei strutturare la query?
Io ci ho sbattuto la testa per due giorni, ma non ho trovato un modo elegante per farlo: l'unica idea che mi è venuta è di calcolare per ogni record un fattore "somiglianza" e poi ordinare i risultati per questo fattore, ma sarebbe un po' lungo farlo ogni volta che viene caricata la pagina web!
Grazie in anticipo,
Gregorio

Rispondi quotando