PHP - Forum

hpvw hat gesagt.:
@reptiler:
Da waren wir ja endlich mal einer Meinung :D (...aber)
Ja, ausnahmsweise mal. ;)
hpvw hat gesagt.:
Hat Dein Forum eigentlich keine User?
Wer schreibt die Beiträge?
Natuerlich gibt es auch User. Aber fuer das Forum an sich nutze ich 2 Tabellen.
Meine Website hat, inklusive Forum, 12 oder 13 Tabellen. Dort sind auch die User enthalten.
Das Forum ist halt eines der Module meiner Website, welche auch eine User-Verwaltung integriert.
Mit dem Gedanken die Threads von den Posts zu trennen hatte ich auch gespielt, hatte dann aber eine, meiner Meinung nach, recht gute Loesung gefunden das zu umgehen.
Beim Programmieren hatte ich sogar einen guten Grund warum ich das so gemacht hab, weiss aber nicht mehr warum. ;)
Auf jeden Fall stellt das erste Post den Thread dar, ist also das einzige Post mit Titel und KategorieID. Die restlichen Posts haben dann nur noch die KategorieID.
 
reptiler hat gesagt.:
Natuerlich gibt es auch User. Aber fuer das Forum an sich nutze ich 2 Tabellen.
Dann bin ich ja beruhigt. Einer meiner ersten Versuche mit PHP war ein absolutes Miniforum (zum Üben, nicht zum Nutzen) mit nur einer Tabelle, bei dem man zu jedem Post einfach seinen Nick angibt, sozusagen ein Gästebuch mit Antwortfunktion, vollkommen unnormal (im Datenbanksinn). Zweck der Übung war Zugriff auf MySQL und Rekursion in PHP.
Hätte ja sein können, dass Du ein ähnliches "Diskussionsgästebuch" geschrieben hast.


reptiler hat gesagt.:
Mit dem Gedanken die Threads von den Posts zu trennen hatte ich auch gespielt, hatte dann aber eine, meiner Meinung nach, recht gute Loesung gefunden das zu umgehen.
...
Auf jeden Fall stellt das erste Post den Thread dar, ist also das einzige Post mit Titel und KategorieID. Die restlichen Posts haben dann nur noch die KategorieID.
Ich hatte damals mit Parent-Ids gearbeitet. Der erste Post hatte die ParentID 0, der zweite die ID des ersten usw. Man konnte auf einzelne Posts antworten, so dass sich ein Baum ergibt (halt eine Übung zur Rekursion). Ein "richtiges" Forum würde ich allerdings nicht so rekursiv schreiben.
Mit Trennung von Thread und Post hatte ich auch mal theoretischerweise beschäftigt. Ich bin auf gute Gründe für beides gekommen, aber schließe mich nachdem das alles ein Weilchen her ist an:
reptiler hat gesagt.:
Beim Programmieren hatte ich sogar einen guten Grund warum ich das so gemacht hab, weiss aber nicht mehr warum. ;)
Gruß hpvw
 
Rekursion ist so eine Sache. Man braucht sie nicht sehr oft, aber sie kann in gewissen Situationen sehr hilfreich, bzw. die einzige Moeglichkeit sein.
Auch wenn es etwas :offtopic: ist, grad vor kurzem hab ich hier ein, meiner Meinung nach, gutes Beispiel fuer Rekursion gepostet.

Mein Forum ist schon ein "richtiges", das komplizierteste war die Threads nach Aktualitaet zu sortieren. Also das mit dem neuesten Beitrag ganz oben.
 
reptiler hat gesagt.:
Rekursion ist so eine Sache. Man braucht sie nicht sehr oft, aber sie kann in gewissen Situationen sehr hilfreich, bzw. die einzige Moeglichkeit sein.
Jepp, Directory-Listing ist ein sinnvolles Beispiel für Rekursion, Fibonatchi-Zahlen ein klassisches und rekursive Datenbankabfragen ein inperformantes.
Angeblich kann man ja jedes rekursiv zu lösende Problem auch iterativ lösen, aber Sinn macht das nicht immer, zumal ich die Rekursion in vielen Fällen, wo sie zu gebrauchen ist, wesentlich einfacher finde.

reptiler hat gesagt.:
Mein Forum ist schon ein "richtiges", das komplizierteste war die Threads nach Aktualitaet zu sortieren. Also das mit dem neuesten Beitrag ganz oben.
Ähnliche Fragen habe ich auch schon desöfteren hier im Forum gelesen;) Wenn die passenden Daten zum User und Threadtitel, dazu das Threaderstellungsdatum und das Datum des letzten Post benötigt werden, bedingt es Subquerys oder Joins, dazu GROUP BY, MAX, MIN etc.
Alternativ zu Subquery und Join geht auch ein Workaround mit CONCAT und SUBSTR.
In der Tat ist das eins der komplizierteren Querys, insbesondere in MySQL-Versionen vor 4.1.

Gruß hpvw
 
Ich hab das Sortieren ueber eine recht komplizierte PHP-Geschichte geregelt.
Mit den ganzen MySQL Befehlen hab ich mich noch garnicht so sehr auseinandergesetzt.
Da nutze ich in der Regel nur die Standard-Befehle wie SELECT, INSERT, UPDATE und DELETE. Das befehlstechnisch anspruchsvollste was ich mit MySQL gemacht hab war festzustellen ob eine Tabelle irgendwelche Overhead-Daten mitschleppt und dementsprechend eine Optimierung vertragen koennte.

Muss mich echt mal in die ganzen anderen MySQL-Befehle einarbeiten.
 
Zurück