relations

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • relations

    hallo,

    ich überlege gerade wie man eine "relations"-funktion am besten/schnellsten programmiert, wie sie beispielsweise bei openbc, facebook, studivz realisiert ist.
    kurze erläuterung:
    man hat freunde, die natürlich auch wieder freunde haben.
    nun kann man bei einem beliebigen user sehen ob man eventuell eine solche "relation" hat. d.h. ob dieser user einen freund hat der auch dein freund ist oder ob er einen freund hat, der wiederrum einen freund hat der dein freund ist usw. usw.

    wenn ich jetzt aber mal überlege, das ich eine einfache tabelle mache.
    spalte 1 - userid, spalte 2 userid freund
    und dann anfange abzufragen:
    hat ein user 100 freunde und ich will nur schauen ob über drei verbindungen jemand zu tage kommt der mein freund ist, ich aber bedenken muss, dass jeder dieser 100 freunde wieder je 100 freunde haben könnte. dann wären das ne menge abfragen, oder nicht?
    jedenfalls klingt das für mich nicht gerade sehr fix.
    wenn jetzt nur 100 leute diese abfrage gleichzeitig ausführen...

  • #2
    User sind Knoten, Freundschaften sind gewichtete* Kanten in einem ungerichteten Graphen. Du suchst nun einen möglichst kurzen (am besten den kürzesten) Weg von einem Knoten zu einem anderen.

    Das ist ein Standardproblem der Informatik. Man nennt es oft Shortest Path. Googel das mal!


    *) Entweder "User A ist ein besonders guter Freund von B" oder einfach jede Kante mit 1 (Hop).

    Kommentar


    • #3
      Wurde alles hier schon mehrfach durchgekaut. Benutz mal die Suche mit den von dir verwendeten Stichwörtern (relations ist vielleicht ein bisschen zu generell und kann alles bedeuten.)
      ICH BIN ICH!!!

      Kommentar


      • #4
        Vielleicht ist der Dijkstra-Algorithmus interessant!

        Kommentar

        Lädt...
        X