Hallo,
wie funktioniert eigentlich die Darstellung der Beziehungen / Bekanntschaftsgrade in "sozialen Netzwerken"? Mir geht es hier speziell um die technische Umsetzung, also wie die Beziehungen gespeichert und wie abgefragt werden.
1. Ich gehe davon aus, dass eine Person A direkte Beziehungen zu n Personen pflegen kann. Somit habe ich n Datensätze, z. B.:
uid | beziehung_zu_uid
----------------
1 | 18
1 | 89
1 | 37
2. Ich gehe davon aus, dass eine Person A eine indirekte Beziehung zu einer Person B über n Knoten führen kann, z. B.:
Beziehung: 1 - 2398 - 231 - 323 - ... - 441 - 3332 - 3
3. Wie wird sowas abgefragt (SQL)? Das entzieht sich momentan absolut meiner Logik. Man kann doch nicht n^m Abfragen starten und sich so von Direkt- zu Direktbeziehung hangeln, bis man am Ziel angekommen ist, z. B.:
- Gib mir alle meine Beziehungen. Schaue, ob ich Person B kenne.
- Gib mir alle Beziehungen meiner Beziehungen. Schaue, ob sie Person B kennen.
- Gib mir alle Beziehungen der Beziehungen meiner Beziehungen. Schaue, ob einer davon Person B kennt.
...
Das geht ja auf keinen Fall. Also wie funktioniert sowas? Ist die Lösung doch so banal, dass ich viel zu kompliziert denke?
pb
wie funktioniert eigentlich die Darstellung der Beziehungen / Bekanntschaftsgrade in "sozialen Netzwerken"? Mir geht es hier speziell um die technische Umsetzung, also wie die Beziehungen gespeichert und wie abgefragt werden.
1. Ich gehe davon aus, dass eine Person A direkte Beziehungen zu n Personen pflegen kann. Somit habe ich n Datensätze, z. B.:
uid | beziehung_zu_uid
----------------
1 | 18
1 | 89
1 | 37
2. Ich gehe davon aus, dass eine Person A eine indirekte Beziehung zu einer Person B über n Knoten führen kann, z. B.:
Beziehung: 1 - 2398 - 231 - 323 - ... - 441 - 3332 - 3
3. Wie wird sowas abgefragt (SQL)? Das entzieht sich momentan absolut meiner Logik. Man kann doch nicht n^m Abfragen starten und sich so von Direkt- zu Direktbeziehung hangeln, bis man am Ziel angekommen ist, z. B.:
- Gib mir alle meine Beziehungen. Schaue, ob ich Person B kenne.
- Gib mir alle Beziehungen meiner Beziehungen. Schaue, ob sie Person B kennen.
- Gib mir alle Beziehungen der Beziehungen meiner Beziehungen. Schaue, ob einer davon Person B kennt.
...
Das geht ja auf keinen Fall. Also wie funktioniert sowas? Ist die Lösung doch so banal, dass ich viel zu kompliziert denke?
pb
Kommentar