Jak mogę porównać grupę tagów z tagami innego wpisu w mojej bazie danych, aby uzyskać powiązane posty?Porównaj grupę tagów, aby znaleźć podobieństwo/wynik z PHP/MySQL
Co próbuję zrobić, to porównać grupę tagów w poście do tagów innego wpisu:, ale nie każdego tagu pojedynczo. Powiedzmy, że chcesz uzyskać naprawdę powiązane elementy na podstawie tagów z posta, a następnie pokazać je od najbardziej pokrewnego do najmniej spokrewnionego. Za każdym razem muszą być wyświetlane trzy powiązane pozycje, bez względu na poziom związku.
post A ma tagi: "architektura", "drewno", "nowoczesny", "Szwajcaria"
post B ma tagi: "architektura", "drewno", "nowoczesny"
postu C ma znaczniki: "architektura", "nowoczesny", "kamień"
Post D ma tagi: "architektura", "dom", "rezydencja"Post B dotyczy stanowiska A o 75% (3 powiązane tagi)
Post C jest powiązany z postem A o 50% (2 powiązane tagi)
Post D dotyczy posta A o 25% (1 powiązany tag)
Jak mogę to zrobić? Obecnie używam 3-tabel.
posts
> id
> image
> date
post_tags
> post_id
> tag_id
tags
> id
> name
Przeszukałem Internet i przepełnienie stosu, aby dowiedzieć się, jak to zrobić. Moje najbliższe znalezisko to How to find "related items" in PHP, ale w rzeczywistości niewiele mi to rozwiązało.
Jakie jest twoje pytanie? – JochenJung
Zaktualizowałem swój wpis, uzyskując wyraźniejsze pytanie. – stwhite
Jak obliczyć procent? Jakiego związku oczekujesz od relacji A do B (w przeciwieństwie do B do A)? 100% lub 75%? Jeśli odpowiedź wynosi 75%, czy dodanie innego niepowiązanego znacznika do B zmieni to? A co z relacją B do C? 66% lub 50% (2 powiązane, 2 niepowiązane)? –