Kommentar Antworten

  • App
    WoltLab Suite Core

    Hallo zusammen,

    wollte mal fragen warum Kommentar Antworten in einer eigenen Tabelle gespeichert werden? So wie ich das sehe verkompliziert das nur das Handling mit Kommentaren. Aber da es sicher einen Grund gibt möchte ich Fragen warum Kommentar Antworten nicht einfach mit einer parentID in der wcf1_comment gespeichert werden. Derzeit muss man immer zwei Datenbank Abfragen absetzen wenn man alle Kommentare haben möchte. Auch das Handling mit Activities und Notifications ist dadurch aufwendiger.

    Viele Grüße

  • Wirklich verkomplizieren tut es nichts.

    Speichert man das in einer Tabelle, so wird der Query wesentlich aufwändiger (auch was die Auswertung angeht). Außerdem spart es Speicherplatz, da du in der comment_response Tabelle wesentlich weniger Felder hast. Außerdem werden in der comment-Tabelle die IDs der Antworten denormalisiert gespeichert, dies dient vermutlich v.a. der Performance-Steigerung.

    Ich sehe nicht wirklich, welchen Vorteil man davon haben sollte, beides in einer Tabelle zu speichern.

    "A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP" — Leonard Nimoy

    • Offizieller Beitrag

    Außerdem werden in der comment-Tabelle die IDs der Antworten denormalisiert gespeichert, dies dient vermutlich v.a. der Performance-Steigerung.

    Das ist richtig, auf diese Weise können bei einer beliebigen Anzahl von Kommentaren die jeweils 5 letzten Antworten pro Kommentar abgefragt werden. Dadurch werden immer nur 2 Queries benötigt, unabhängig davon wie viele Kommentare es auszulesen gibt. Ohne diese Denormalisierung wäre der Aufwand für das gleiche Ergebnis 1+n.

    Ansonsten sehe ich auch keinen Vorteil in einer Zusammenlegung, die benötigte Anzahl an Datenbankabfragen wäre gleich und bei einer Zusammenlegung ggf. sogar langsamer, da mit steigender Anzahl an Datensätzen auch die Performance der Indizes abnimmt.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • Verstehe eure Punkte.

    Mir ist es halt bei den Acitivities und Notifications aufgefallen. Dort muss es immer eine CommentUserAcitivity und eine CommentResponseActivity geben. Um bei den Responses an das eigentliche Objekt zu kommen muss erst der eigentliche Kommentar geladen werden da erst dort die objectID auf das eigentliche Objekt zeigt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!