MYSQL / PHP findet das am häufigsten verwendete Element, das einem bestimmten Element zugeordnet ist
Ich habe Tausende von benutzerdefinierten Wunschlisten mit Artikeln
the Tabelle ist so etwas wie
collectionId | itemdId | user_id
-----------------------------------
123 | 2345 | 1
123 | 3465 | 1
123 | 876 | 1 // <---
123 | 567 | 1
123 | 980 | 1 // <---
777 | 980 | 2 // <---
777 | 332 | 2
777 | 3465 | 2
777 | 876 | 2 // <---
777 | 678 | 2
777 | 567 | 2
... ... ...
etc..
siehe Artikel 876 und 980, sind in beiden Kollektionen enthalten (777 und 123), so dass sie ein beliebtes Paar / Paar sind
Angenommen, ich besuche die Seite von Artikel 876. Ich möchte meinen Benutzern anzeigen, dass ein sehr häufiger Artikel damit verbunden ist / gewünscht wird. Es handelt sich um Artikel 980. (Dies basiert natürlich auf user'taste.)
Denken Sie für einen Moment darüber nach, was Amazon tut, wenn Sie ein weißes iPhone sehen. Ich möchte Ihnen ein rosa iPhone-Cover vorschlagen, weil viele andere Benutzer dies zusammen mit dem weißen iPhone vorgeschlagen / favorisiert haben.
in PHP würde ich wohl etwas loopiges machen wie im Pseudocode
for total number of collection:
select all item from collection 1
select all item from collection 2
do array_interesct (c1,c2)
store the matching items
repeat...
select all item from collection 2
do array_interesct (c1,c3)
store the matching items
repeat...
...then elect all item from collection 2 and repeat all the iterations..
aber ich frage mich, ob dies nur mit MYSQL erreicht werden kann