Feeds für jeden Nutzer

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

  • Feeds für jeden Nutzer

    Servus Leute,
    ich soll für eine Community-Seite einen Feed für jeden Nutzer erstellen.
    Jeder Nutzer hat also seine eigene kleine Micropage und kann dort
    seine Feeds posten. Ähnlich wie bei Facebook.

    Jedoch bin ich mir über die Performance der Datenbank-Struktur nicht
    ganz im klaren. Ich befürchte das sehr schnell sehr viele Einträge
    vorhanden sein werden die die Datenbank lähmt.

    Datenbank-Talbe: Feed:

    (int) ID
    (int) User_ID
    (var_char 15) Username
    (var_char 250) Feed_Text
    (var_char 250) Link
    (int) Like

    Datenbank-Table: Feed_Comments
    (int) ID
    (int) Feed_ID
    (int) User_ID
    (var_char 250) Comment_Text
    (int) Like

    Was meint ihr dazu? Wie könnte ich die Performance steigern?

  • #2
    Also erstmal wirst du mit ner millionen Einträge noch gut mit der Performance hinkommen. Wenn das alles nicht mehr reicht, dann musst du wohl vor alllem an der Infrastruktur arbeiten.

    Zum Aufbau der Tabelle verrätst du ja erstmal noch nicht viel. Das was du zeigst, halte ich für geeignet. Aber warum hast du in der einen Tabelle den Usernamen und in der anderen nicht? das ist inkonsistent und in meinen Augen auch überflüssig.

    Entscheident für die Perfomance wird das richtige setzen der Indexe. Darüber hast du bisher noch keine Informationen gepostet, aber ich gehe davon aus, dass das bei der vorhandenen Komplexität wohl hinhauen wird.

    Zu guter letzt entscheiden natürlich die Queries, die du verwendest, wie performant das ganze ist. Aber auch hier denke ich, dass du mit sauberen Grundlagen nicht viel falsch machen kannst.

    Mach also mal fertig, füge entsprechende Testeinträge ein und wenn konkrete Probleme auftreten, kannst du sie ja wieder hier schildern.

    Kommentar


    • #3
      Servus und Danke für dein Interesse
      und deine Antwort zunächst!

      Also erstmal wirst du mit ner millionen Einträge noch gut mit der Performance hinkommen. Wenn das alles nicht mehr reicht, dann musst du wohl vor alllem an der Infrastruktur arbeiten.
      Das beruhigt mich schon mal sehr. Ich habe noch keine Erfahrungen mit großen Datenbänken. Deshalb frage ich hier, aber das nimmt mir schon einmal etwas
      die Sorge. Ich bin in meiner Infrastruktur sehr darauf bedacht keine aufwendigen Operationen durch zu führen oder mich unnötig zu wiederholen.
      Es soll alles sehr flach, zielstrebig sein.

      Ich habe leider bei der Tabelle oben jeweils den Timestamp vergessen
      sowie nicht bedacht: dass die Likes in einen eigenen Table gehören.


      Zum Aufbau der Tabelle verrätst du ja erstmal noch nicht viel. Das was du zeigst, halte ich für geeignet. Aber warum hast du in der einen Tabelle den Usernamen und in der anderen nicht? das ist inkonsistent und in meinen Augen auch überflüssig.
      Meine Gedanke dahinter war es nicht jeden Usernamen extra ermitteln zu müssen da dies min. eine Operation pro Feed und Kommentareintrag wäre.
      Der Sparsamere Weg in meinen Augen ist es da wirklich die Datendoppelt
      zu speichern, liege ich da falsch?

      Entscheident für die Perfomance wird das richtige setzen der Indexe. Darüber hast du bisher noch keine Informationen gepostet, aber ich gehe davon aus, dass das bei der vorhandenen Komplexität wohl hinhauen wird
      Das verstehe ich nicht ganz. Der Background des Systems ist Objekt Orientiert und läuft über eine .htaccess die alle User auf die index
      umleitet.

      Kommentar


      • #4
        sowie nicht bedacht: dass die Likes in einen eigenen Table gehören.
        Naja, du hast auch die Usertabelle nicht abgebildet, daher hatte ich hier zunächst nichts vermisst. Die Aggegation der Likes-Anzahl halte ich jedoch weiterhin für sinnvoll.

        Meine Gedanke dahinter war es nicht jeden Usernamen extra ermitteln zu müssen da dies min. eine Operation pro Feed und Kommentareintrag wäre.
        Warum machst du es dann nur in einer Tabelle? In meinen Augen sollte es zumindest konsequent sein. Obgleich ich glaube, dass du den JOIN auf die User-Tabelle ruhigen gewissens machen kannst. Wenn du dann irgendwann Facebook bist, kannst du dir immernoch gedanken über Caching machen.

        Das verstehe ich nicht ganz. Der Background des Systems ist Objekt Orientiert und läuft über eine .htaccess die alle User auf die index umleitet.
        Gemeint sind natürlich Datenbank Indexe.

        Kommentar

        Lädt...
        X