Dex: (MySQL)(PHP) Fragen zu Kommentarfunktion

Hallo,
ich werkel grad an einer einfachen Kommentarfunktion für meine Webseite und habe jetzt leider ein "kleines" Problem.

Und zwar sollen die Kommentare unter den jeweiligen Artikeln angezeigt werden und da es sich um unterschiedliche Artikel handelt, sollen natürlich nicht überall die gleichen Kommentare stehen (ist ja klar ;)). Daher würde ich gern mal wissen wie es möglich ist, diesen Artikeln eine ID zuzuweisen und die zu der ID passenden Kommentare auszugeben.

Meine erste Überlegen war, dass man für jeden Artikel eine eigene Tabelle in der Datenbank anlegt, um so die Kommentare voneinander zu trennen - allerdings scheint mir diese Lösung eher umständlich und viel zu aufwändig...

Danke schonmal im Voraus !

  1. Hallo,

    Meine erste Überlegen war, dass man für jeden Artikel eine eigene Tabelle in der Datenbank anlegt, um so die Kommentare voneinander zu trennen  - allerdings scheint mir diese Lösung eher umständlich und viel zu aufwändig...

    Oh ja, das ist definitiv eine schlechte Idee.

    Wo sind denn die "Artikel" momentan gespeichert? Nicht in einer Tabelle? Wenn doch, dann sollte selbige Tabelle eine Spalte haben, die zur eindeutigen Identifizierung ihrer Einträge dient - Primärschlüssel, oft "Id" genannt und sich selbständig mit immer fortlaufenden Werten (auto_increment) füllend. Mit eben solcher Id kannst du in einer zweiten Tabelle "Kommentare" die eingetragenen Kommentare den Artikeln zuordnen.

    Wenn du dann einen Artikeln anzeigst, brauchst du dann nur noch eine weitere Abfrage auf die Kommtar-Tabelle machen: Gib mir alle Einträge WO der Wert für die Artikelreferenz gleich der eindeutigen Id des momentanen Artikels ist.

    Wie sehen deine Versuche bis jetzt aus?

    Ciao, Frank

    1. Wo sind denn die "Artikel" momentan gespeichert? Nicht in einer Tabelle? Wenn doch, dann sollte selbige Tabelle eine Spalte haben, die zur eindeutigen Identifizierung ihrer Einträge dient - Primärschlüssel, oft "Id" genannt und sich selbständig mit immer fortlaufenden Werten (auto_increment) füllend. Mit eben solcher Id kannst du in einer zweiten Tabelle "Kommentare" die eingetragenen Kommentare den Artikeln zuordnen.

      Ich hab mich da vielleicht ein bisschen ungünstig ausgedrückt - mit Artikel meine ich Texte ala Reviews etc, nicht im Sinne von z.B. Artikel in einem Shop... :)
      Dennoch ist dein Vorschlag eine große Hilfe, sofern man ohne Probleme mehrere große Texte in eine Datenbank packen kann. (mit Hilfe von mediumtext bzw longtext)
      Die Texte und Kommentare anschließend miteinander zu verknüpfen sollte dann nicht mehr das Problem sein :)

      1. Guten Morgen

        [...]

        Ich hab mich da vielleicht ein bisschen ungünstig ausgedrückt - mit Artikel meine ich Texte ala Reviews etc, nicht im Sinne von z.B. Artikel in einem Shop... :)

        Wenn es sich um statische Texte handelt, die nicht aus einer DB gelesen werden, dann musst Du Dir beim Schreiben trotzdem irgendein Unterscheidungskriterium überlegen, also im Endeffekt auch eine ID des Artikels, die beim Kommentieren mitgegeben und mitgespeichert wird. Über diese ID kannst Du dann die entsprechenden Kommentare filtern. Allerdings wird natürlich der Aufwand, die Kommentarfunktion auf beliebig vielen Seiten einzubauen, steigen, weil Du überall auf den eigentlich statischen Seiten beim Kommentieren die korrekte ID des Artikels mitgeben musst.

        Schöne Grüße,

        Peter

      2. Morgen,
        Ich hatte das gleiche Verständnis von "Artikel" wie du. Ausserdem ist es unerheblich für die Erfüllung der Aufgabe. "Artikel" ist einfach eine eigenständige Entität mit mehr oder weniger Informationen (Attributen), die es gilt eindeutig zu identifizen um sie an anderen Stellen referenzieren zu können.

        Wie pgoetz schon sagte, wenn du die Daten in Textdateiformat vorliegen last, musst du ausserhalb der DB für eine eindeutige Identifizierung sorgen. UUIDs (oder GUIDs) sind dafür ziemlich nützlich. Wenn du deine "Artikel" bereits in einer relationen Datenbank wie z.b. mysql speicherst, dann sollte dein Datenmodell einen Primärschlüssel vorgesehen haben.

        Ciao, Frank