Como posso fazer esse mapeamento usando SQL?

Caros, vê se podem me ajudar

Caros, vê se podem me ajudar

Estou construindo um site no Wordpress que disponibiliza arquivos para downloads e gostaria de ter controle total das ocorrências. Gostaria de ser informado a cada download realizado pelo usuário, podendo assim analisar os dados tanto do software quanto do usuário em questão.

Minha ideia é fazer uma busca sql que retorne uma relação de softwares que possuem em comum uma quantidade considerável de usuários que fizeram o download deles. Por exemplo, se o software que mais foi baixado após o software X é o software Y, que possui 117 downloads por usuários que também baixaram o X, ele será um dos softwares “primos” do X e será a primeira sugestão. A ideia é criar uma tabela com um ranking para cada software em que os três primeiros dessa relação sejam os “primos” selecionados para serem sugeridos pelo usuário que baixar o X, que seria o título da tabela das sugestões, estabelecendo assim uma linha probabilística para antecipar a procura do usuário.

Entre a tabela usuário e software eu teria a tabela download que armazenaria o id das duas tabelas. Eu teria também a tabela Sugestão , onde para cada software constaria o resultado dessa busca (os 3 primeiros do ranking). Uma das duvidas é se o auto incremento ficaria nessa tabela ou na de downloads

Bom, não sei se fui claro e desculpe se fui extenso demais. Se ficaram confusos em alguma parte, por favor, digam que eu tentarei explicar melhor. Se detectarem um erro de lógica no meu raciocínio corrijam também.

Obrigado.