Vinzenz Mai: MySQL self join ?

Beitrag lesen

Hallo Uwe,

ich bin derzeit auf der suche nach einer mysql funktion die mir sagt welche beziehungen zwischen einer tabelle besteht, d.h. angenommen man hat zwei felder: uid und frienduid diese tabelle beinhaltet die "Freundschaften" oder auch "Buddies" aus einem Community System. Dann soll mir diese Funktion sagen, wenn user x auf der nickpage von user y ist, zu welchem Grad - über die relationen der verbindungen der einzelnen user - user x zu user y steht. (max. 4 grades.)

ich fürchte, ein vierfacher Selfjoin wird alles andere als performant sein. Auf jeden Fall skaliert er sehr schlecht. Wenn Du also viele User hast, die viele Buddies haben, dann wird das ganz schön belastend für die Datenbank werden. Wenn sich Operationen wie: "ist neuer Buddy" oder "ist kein Buddy mehr" in Grenzen halten, könntest Du eventuell mit Nested Sets mehr Glück haben. Im hiesigen Archiv findest Du einiges dazu, gute Ergebnisse solltest Du mit folgender Sucheingabe: "author:dedlfix category:Datenbank nested set" bekommen.

ich weiß nicht ob jetzt jeder weiß was gemeint ist, aber ich hoffe es. ich habe bisher nicht viel gefunden aber habe den tipp bekommen mit self join zu arbeiten. evt. kennt jemand ein ganz gutes tutorial, welches er mir nennen könnte.

SELFHTML aktuell, Artikel Datenbanken, Fortgeschrittene Jointechniken, Abschnitt Selfjoin.

Freundliche Grüße

Vinzenz