Twitter / Buschfunk .. wie Programmieren?

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

  • Twitter / Buschfunk .. wie Programmieren?

    Hallo,

    ich plane seit kurzem eine Funktion zu Programmieren, die so wie twitter funktioniert oder die shoutbox bei Facebook oder Xing..

    Damit will ich auch das selbe bezwecken, also das sich ein Netzwerk aus Usern aufbaut, die mit einem "tweet" alle Follower o.ä. direkt anschreiben können.

    Nun meine Frage: Wie würdet Ihr das am besten angegen?

    Also ich stelle mit das so vor, das alle Mitteilungen in einer Datenbank/Tabelle stehen und diese dann eben abgeblichen werden, wer mit wem "befreundet" ist und so..

    Also was mir grundsätzlich sogen macht ist die riesige Anzahl an Einträgen in der Datenbank, die eben alle auf eine "freundschaften" geprüft werden müssen.

    Hat jemand eine Idee wie man das am performantesten schreiben kann?

    Ich wäre froh wenn hier ein paar brainstorming tipps eingeworfen werden!

    Danke!!!!

  • #2
    Datenbanken sind dazu da, riesige Mengen an Einträgen zu verwalten. Das ist der Sinn von Datenbanken.

    Freundschaften sind m:n, sprich ein User kann viele Freund haben und jeder User kann mit mehreren befreundet sein.

    In eine Tabelle packen widerspricht der Normalisierung, also braucht man wohl eine Relationstabelle dazwischen

    Code:
    users
    - id
    - name
    
    friends
    - user_id_1
    - user_id_2
    Dort sind zwei Fremdkeys drin, beide jeweils auf die usertabelle bezogen.

    Wenn z.B. Hans (ID:1) und Wurst (ID:2) Freunde sind, wird nur ein Eintrag in der "friends"-Tabelle geändert:

    Code:
    INSERT INTO friends (user_id_1, user_id_2) VALUES (1, 2)
    Dabei muss natürlich darauf geachtet werden, ob die Freundschaft zwischen Wurst (2) und Hans (1) nicht bereits eingetragen ist!

    Wenn man testen will, mit welchen Benutzern jemand befreundet ist, ist die Abfrage auch recht simpel:

    Code:
    SELECT users.id, users.name FROM users
    INNER JOIN friends ON users.id = friends.user_id_2
    WHERE friends.user_id_1 = @userID
    (Alles ungetestet und komplett aus dem Kopf geschrieben, kein Gewähr!)
    Zuletzt geändert von ApoY2k; 22.09.2010, 08:50.
    This is what happens when an unstoppable force meets an immovable object.

    Kommentar


    • #3
      Ich wäre froh wenn hier ein paar brainstorming tipps eingeworfen werden!
      *verschieb*

      Kommentar

      Lädt...
      X