Forum programmieren, grundsätzliche Fragen

Kalma

Erfahrenes Mitglied
Hey,

wie der Titel schon sagt, ich will ein Forum programmieren (wieder einmal).
Nur dieses Mal etwas besser als sonst...

Dazu will ich nun einige Sachen fragen. Zu manchen hab ich auch 'ne Antwort, will aber wissen, ob ihr ne andere Möglichkeit seht.

-1- Themen verschieben
=> Da die Einträge immer noch in dem zu Erst geschriebenen Forum angezeigt werden, dacht' ich mir, dass die Einträge kopiert werden und halt eine andere ForenID zugewiesen wird.

-2- x Betrachter in diesem Forum
=> Wie machen? Per Session und Datenbank wird doch am Besten sein oder?

-3- Ankündigungen
=> Einfach eine Spalte "wichtigkeit" in der Tabelle, oder wie wird das gemacht?


So, das sind meine Ersten Fragen.
 
Hi,

sponten nur mal, wie ich es damals gemacht hatte:
  1. Verschieben: Threads und Postings wurden tatsächlich verschoben (Foren-ID des Threads geändert). Bei Belassen einer Weiterleitung im Ursprungsforum wurde dazu ein neuer Eintrag in der Tabelle "Threads" angelegt, in dem ein Flag (Alias) gesetzt und ein Verweis auf die ID des verschobenen Threads angelegt wurde.

    Es gibt hier aber sicherlich elegantere Lösungen.

  2. Betrachter: Ich habe eine Tabelle angelegt. Ruft ein Benutzer einen Thread eines Forums auf, so wird er in dieser Tabelle ("online") mit der entsprechenden Foren-ID hinterlegt bzw. geändert. Ausgeloggte Benutzer oder solche, die seit einer gewissen Zeit keine Aktivität mehr gezeigt hatten, werden aus der Tabelle entfernt.

  3. Ankündigungen: Ich hatte einfach ein Flag in der Tabelle "Threads" gesetzt, welches bestimmt, ob es sich um eine Ankündigung handelt (für die Laufzeit gabs auch ein Feld).

    Für Die Zustände "Sticky", "Open", "Hot", "Closed" und "Deleted" gabs ein Feld "status" in "Thread" und "Posting.

Gruß
.
 
Ich glaube in diesem Falle wäre sinnvoll sich die anderen etablierten Forensoftwares anzuschauen. WBB(lite) PHPBB

Hast du auch vor PHP4 zu nutzen oder machst du das ganze OOP? Ich mein nur zecks rad neu erfinden und so
 
Ich habe noch eine Frage:

-4- Beitrag gelesen / Nicht gelesen und Neue Beiträge im Forum
=> Wie würdet ihr es machen? Eine Tabelle, wo das gekennzeichnet wird?
 
Das hatte ich mir auch schon einmal überlegt.

Ich kam auf die Idee einfach eine extra Tabelle zu machen, in der die Userid steht und all die gelesenen Thread_Ids stehen.

Aber ich glaube das ist nicht so sinnvoll, weil das ziemlich flutet.
 
Moin,

ich hatte das mal so gelöst:

1 Tabelle für Posts
dabei 1 Spalte 'Gesehen'

Wenn jemand dann den Thread öffnet wird bei allen Beiträgen in diesem Thread in die Spalte 'Gesehen' der Benutzername + Trennzeichen (z.B. ';') hinzugefügt.

Dann abfragen ob der Benutzername vorhanden ist.
Wenn nicht, dann halt anzeigen lassen, dass ein neuer Beitrag vorhanden ist, bzw. wenn der Name vorhanden ist, dann halt dass es keinen neuen Post gibt.

LG pHyro
 
Eine elegante Lösung gibt es nicht, nur 2 Möglichkeiten:

1. Du speicherst immer ab, wann ein Benutzer einen Post "gesehen" hat. Problem: Die Daten werden immer mehr und irgendwann kommst an nen Speicherplatz-Problem

2. Du speicherst bei jedem Eintrag für alle User in einer Tabelle, dass sie diesen Post noch nicht gelesen haben. Zusätzlich filterst du Einträge raus, welche Älter als x Tage sind. Problem: hohe Datenbank-Last bei jedem neuen Beitrag!


Beide Lösungen haben das Problem, dass bei eienem neuen User dieser nicht unebdingt mit berücksichtigt wird, wenn er sich grade registriert hat. Da musst du dir dann noch was einfallen lassen (z.B. alle aus der letzten Woche als ungelesen markieren und neue Beiträge abgleichen mit dem letzten Login).
 
Zurück