[php/mysql] forum topic delete

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01
Ik ben bezig met het devven van een forum :P

Nu ben ik bezig met de functie om een topic in z'n geheel te deleten.
Maar ik stuit op een probleempje bij het deleten van de inhoud van een topic.

Ik heb ongeveer de volgende tabellen:
Topics:
id
title

Replies:
id
topic_id

Replies_text:
reply_id
reply_parsed
Nu kan ik vrij een voudig met:
DELETE FROM topics WHERE id='" . $id . "'
een topic verwijderen uit de lijst.

Maar ik wil ook alle replies verwijderen.
Dus dan doe ik:
DELETE FROM replies WHERE topic_id='" . $id . "'

Dat gaat allemaal goedm aar als ik dus de inhoud van de replies wil deleten dan heb ik geen idee hoe ik dit aan ga pakken, aangezien ik geen topic_id row in mn replies_text tabel heb oid.

En aangezien ik dit forum ook werkende wil hebben voor mensen die geen MySQL 4.x draaien kan ik dus geen JOINS in de DELETE query maken :/

Kan iemand mij helpen met dit probleem?

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • Tom-Eric
  • Registratie: Oktober 2001
  • Laatst online: 25-03 09:11
Misschien 2 queries, waarbij je eerst de reply_id's ophaalt voordat je gaat legen?

i76 | Webdesignersgids | Online Gitaarlessen & Muziekwinkels


Acties:
  • 0 Henk 'm!

  • TheDuke
  • Registratie: Juni 1999
  • Niet online
[naja mode]hier stond een sarcastische opmerking die de topicstarter diste, maar goed...[/naja mode]

SELECT id FROM replies WHERE topic_id = '". $id . "'

en dan daar de resultaten van gebruiken om de replies_text tabel te clearen... ofwel door een query voor elke reply of door een dikke OR query...

[ Voor 29% gewijzigd door TheDuke op 20-04-2003 19:08 ]


Acties:
  • 0 Henk 'm!

  • Shinji
  • Registratie: Februari 2002
  • Laatst online: 18:38
Waarom niet van de Replies en Replies_text één tabel maken?

Dus:
Replies:
id
topic_id
reply_parsed

[ Voor 3% gewijzigd door Shinji op 20-04-2003 19:08 ]


Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 08:38
Algemeen:
Wat is het performanceverschil tussen 2 tabellen met topics en replies (en dus 2 queries) enerzijds en 1 tabel met alle posts (en een veld bIsReply oid) anderzijds?
Oftewel welke overhead is groter, een extra tabelbenadering of een grotere tabel?

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01
Die oplossing die door Tum|mut en TheDuke genoemd wordt is denk ik geen optie omdat je anders bij grote topics zodanig lange queries krijgt dat MySQL over de nek gaat.

Een andere optie is natuurlijk het topic_id meegeven aan de replies_text tabel meegeven.

Ik heb het topic_id maar meegegeven aan de replies_text tabel. Ik sla dan wel data dubbel op, wat opzich een beetje ranzig is, maar er ontstaan geen problemen door.

[ Voor 25% gewijzigd door Tux op 20-04-2003 19:28 ]

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 26-04-2024
Shinji schreef op 20 April 2003 @ 19:07:
Waarom niet van de Replies en Replies_text één tabel maken?

Dus:
Replies:
id
topic_id
reply_parsed
Dit lijkt mij de beste, en ook meest logische oplossing. Want wat heeft die koppeltabel met die id's voor nut :? Dat maakt het mijns inziens alleen maar ingewikkelder, en krijg je dit probleem.
Algemeen:
Wat is het performanceverschil tussen 2 tabellen met topics en replies (en dus 2 queries) enerzijds en 1 tabel met alle posts (en een veld bIsReply oid) anderzijds?
Oftewel welke overhead is groter, een extra tabelbenadering of een grotere tabel?
Ik denk dat er vrij weinig performanceverschil in zit, maar twee aparte tabellen vind ik een netter model. Maar daar zullen de meningen wel over verschillen.

[ Voor 6% gewijzigd door ludo op 20-04-2003 20:05 ]

Pagina: 1