Ik heb nu twee db tabellen: reacties en topics. Nu heb ik m'n forum een hele lange tijd geleden gemaakt en hij is nogal verouderd.

Daarom ben ik bezig met de renovatie van dit script en toen kwam ik tot een schokkend feit: Ik heb teveel data in m'n DB! :O

Het zit zo: Ik heb bij een tabel genaamd topics twee verschillende DATETIMES:
1: datum (van wanneer deze gepost is)
2: n_datum (n staat dacht ik voor nieuw.. dit is dus wanneer de laatste reactie was)

Die n_datum is dus dezelfde datum als die van de laatste reactie of, als er nog geen reactie is hetzelfde als datum.

Dit is natuurlijk niet efficiƫnt.. daarom wil ik dit weghalen.

Nu heb ik veel geprobeerd in de query met DISCOUNTs, GROUP BY's (zelfs nog een keer de tutorial helemaal doorgelezen) enzo, maar ik kom er maar niet uit:

Hij zet alles in volgorde, tot er een reactie is. Die telt hij niet mee en hij ordert ze dus op de datum van het topic (terwijl ik bij ORDER BY eerst het datum van de reactie en daarna van het topic heb).

Nu kom ik er echt niet uit, dus bedacht ik me:
Waarom maak ik geen tabel aan die forum heet en daar de topics EN reacties inzet? En het dan zo maken, dat een topic nooit voor een reactie aangezien kan worden of andersom.

Is dit handig? Of moet ik toch echt iets met een query doen?
Zo ja, hoe ziet de query er dan uit, want het kan zijn dat er geen reacties zijn..
Een topic een stuk tekst zonder parent. Een reactie is een stuk tekst die een topic als parent heeft. Die zou je dus best samen in 1 tabel kunnen opslaan met als enig verschil dat er stukken tekst zijn die geen parent hebben en anderen hebben wel een parent.

De volgorde van de reacties bepaal je aan de hand van de datumtijdstempels.

Het 'topic' wordt dan bepaald door de titel, verder hangen daar alleen maar 'reacties' onder waarbij de eerste reactie het eigenlijke topic is. De begrippen 'topic' en 'reactie' zijn gewoon betekenissen die jij toekent aan de volgorde van de stukken tekst die worden gepost.
Ok, maar in 1 tabel is dus wel een goed idee? (Ik had verwacht van niet :P)

Ik blij :D

[edit]
Maar als je verschillende fora hebt.. dan is de parent die van het forum..

Maar ik heb ook altijd nog titel en prioriteit (Belangrijk, Sticky enz)
[/edit]

Edit2:
Ik dacht opeens: Je hebt toch ook iets zoals JOINS? En toen heb ik gekeken. Nu heb ik een LEFT JOIN en die werkt perfect!
Toch niet zo perfect
Nee, het zijn 2 tabellen (eigenlijk al 4, forums en users heb je ook nodig):
- topic
id
titel
id_forum

- content
id
id_topic
id_user
id_parent_content (hier komt dus het parent_id in te staan, mocht deze er zijn)
datumtijd
tekst

Succes!

Reageren