Hi Leute,
mal eine theoretische Frage. Ich bastel an einer social networking Anwendung mit PHP und MySQL. Es geht darum, die kürzeste Verbindung zwischen zwei Benutzern zu berechnen, also:
Ich --> Hans --> Wurst --> Anna oder
Ich --> Anna
Abgespeichert werden die Infos wie folg:
Ich kenne Hans
Hans kennt Wurst
Wurst kennt Anna
- Natürlich mit IDs etc.
Je nach Grad der Bekanntschaft. Ich hab das soweit schon realisiert, die Abfrage geht vom Prinzip her folgendermaßen:
- Hole Freundesliste vom Ausgangspunkt.
- Wenn Zielpunkt nicht in der Liste, hole Freundesliste von Zielpunkt
- Wenn Startpunkt nicht in der Freundesliste von Zielpunkt, hole Freundesliste vom ersten Freund von Startpunkt
...
etc.
Ihr könnt Euch das Prinzip denke ich vorstellen.
Nun meine Frage: Auf die Art schicke ich einen großen Haufen Datenbankabfragen an MySQL und verarbeite dann die Info Häppchenweise in PHP.
Was ist besser: Eine komplexe MySQL Abfrage, die mir eine Beziehungsmatrix produziert (wie eine Matrix in einem Grafensystem) und das ganze Php seitig einmal errechnen oder Häppchenweise, wie ich es jetzt mache?
Im Moment sind etwa 50.000 Beziehungen in der DB und die Seite fängt an, langsam zu laden.
Vielen Dank für Eure Meinungen / Anregungen / Kommentare.
Criscrasp
mal eine theoretische Frage. Ich bastel an einer social networking Anwendung mit PHP und MySQL. Es geht darum, die kürzeste Verbindung zwischen zwei Benutzern zu berechnen, also:
Ich --> Hans --> Wurst --> Anna oder
Ich --> Anna
Abgespeichert werden die Infos wie folg:
Ich kenne Hans
Hans kennt Wurst
Wurst kennt Anna
- Natürlich mit IDs etc.
Je nach Grad der Bekanntschaft. Ich hab das soweit schon realisiert, die Abfrage geht vom Prinzip her folgendermaßen:
- Hole Freundesliste vom Ausgangspunkt.
- Wenn Zielpunkt nicht in der Liste, hole Freundesliste von Zielpunkt
- Wenn Startpunkt nicht in der Freundesliste von Zielpunkt, hole Freundesliste vom ersten Freund von Startpunkt
...
etc.
Ihr könnt Euch das Prinzip denke ich vorstellen.
Nun meine Frage: Auf die Art schicke ich einen großen Haufen Datenbankabfragen an MySQL und verarbeite dann die Info Häppchenweise in PHP.
Was ist besser: Eine komplexe MySQL Abfrage, die mir eine Beziehungsmatrix produziert (wie eine Matrix in einem Grafensystem) und das ganze Php seitig einmal errechnen oder Häppchenweise, wie ich es jetzt mache?
Im Moment sind etwa 50.000 Beziehungen in der DB und die Seite fängt an, langsam zu laden.
Vielen Dank für Eure Meinungen / Anregungen / Kommentare.
Criscrasp
Kommentar