es so verbunden sind, ist eine friendship_request Tabelle:fest, ob zwei Benutzer über Freunde von Freunden
+--------+----------+
| sender | receiver |
+--------+----------+
| 1 | 2 |
| 2 | 1 |
+--------+----------+
Zwei Benutzer sind Freunde, wenn beide eine Anfrage einander gesendet haben.
Ich verwende PHP array_intersect mit Arrays mit allen Freunden eines jeden Benutzers, um festzustellen, ob sie durch Freunde von Freunden verbunden sind.
heißt
1 <--> 2 <--> 3
Was der effizienteste Weg ist zu finden, wenn zwei Benutzer Freunde, die Freunde, die miteinander befreundet sind. dh
+--------+----------+
| sender | receiver |
+--------+----------+
| 1 | 2 |
| 2 | 1 |
| 2 | 3 |
| 3 | 2 |
| 3 | 4 |
| 4 | 3 |
+--------+----------+
1 <--> 2 <--> 3 <--> 4
Benutzer 1 sollte mit Benutzer seiner Beziehung wissen 4.
PS: Es ist in Ordnung, mit PHP/Pseudo-Code oder
MySQLEdit: Ich möchte nicht eine andere Tabelle erstellen oder Ansichten. Ich möchte mit den oben beschriebenen Ressourcen die beste Lösung erhalten.
Mögliche Duplikat arbeiten [Was sind die Optionen zum Speichern von hierarchischen Daten in einer relationalen Datenbank sind?] (Https://stackoverflow.com/questions/4048151/Was-sind-die-Optionen-zum Speichern-hierarchische Daten in einer relationalen Datenbank) – philipxy
Dies ist eine FAQ. Google relational/SQL-Daten/Tabellen/Abfragen für Hierarchien/Bäume. Bitte immer vorher googlen stackoverflow für viele prägnante Aussagen zu Ihrer Frage. (Machen Sie Ihren Titel.) PS "Effizient" bedeutet nichts. Oder anders gesagt, du hast es benutzt, was meinst du damit, * genau *, ohne dass wir es dir sagen wollen. – philipxy
Ich möchte keine Tabelle mit Knoten ... –