chciałem zrobić mechanizm, który podpowiadałby użytkownikowi podobne artykuły do obecnie czytanego. Wpadł mi do głowy taki pomysł:
Powiedzmy, że użytkownik czyta tekst zatytułowany XXX. Jest on opisany przez tagi 'tag1', 'tag2' i 'tag3'.
Istnieją jeszcze 3 artykuły w bazie danych:
- YYY o tagach 'tag2', 'tag4'
- ZZZ o tagach 'tag1', 'tag2', 'tag3', 'tag5'
- AAA o tagach 'tag2', 'tag3', 'tag5'
Jak widać:
- artykuł YYY ma 1 wspólny tag: 'tag2'
- artykuł ZZZ ma 3 wspólne tagi: 'tag1', 'tag2', 'tag3'
- artykuł AAA ma 2 wspólne tagi: 'tag2', 'tag3'
Chciałbym, aby lista podobnych była następuąca:
- ZZZ
- AAA
- YYY
Jak widać zostały wypisane artykuły, których ilość wspólnych tagów z artykułem XXX jest malejąca.
I teraz pytanie dotyczące SQL:
Jak powinno wyglądać odpowiednie zapytanie do DB zakładając, że ma 2 tabele:
Article
- id
- ... (inne mniej istotne pola)
Article_tag
- id
- article_tag
- tagi_id
Tag
- id
- name
Proszę o wyjaśnienie i podpowiedzi jak takie coś zbudować, bo w jestem cienki w te klocki (SQL).
Pozdrawiam
