[Database] Reacties tabel

Pagina: 1
Acties:

  • oZy
  • Registratie: Juli 2001
  • Laatst online: 00:35
Stel je hebt een site als tweakers.net, of fok.nl, daar staan talloze reacties op. Zet je die allemaal in 1 tabel? Want in feite is het niet zo moeilijk om de juiste reacties bij elkaar te zoeken.. filter juiste categorie (news/column/review bijv), filter juiste id nr. Of is het beter om per categorie een aparte reacties tabel te gebruiken (met het oog op prestatie/belasting)?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

ALs je naar prestatie/belasting kijkt, denk ik dat mysql sneller de keuze tussen verschillende categorie-en maakt dan je php scriptje...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

Gewoon 1 grote tabel met alle reacties. Dan per reactie aangeven tot welke categorie dattie hoort..

Je kan de database gewoon laten filteren (/zoeken) op de goede reacties... maakt niet uit hoeveel het er zijn (mits je een goed db-ontwerp heb, en je je indexen goed legt)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • oZy
  • Registratie: Juli 2001
  • Laatst online: 00:35
Op woensdag 27 maart 2002 15:41 schreef thomaske het volgende:
Gewoon 1 grote tabel met alle reacties. Dan per reactie aangeven tot welke categorie dattie hoort..

Je kan de database gewoon laten filteren (/zoeken) op de goede reacties... maakt niet uit hoeveel het er zijn (mits je een goed db-ontwerp heb, en je je indexen goed legt)
Ja ik snap hoe sql werkt :Y)

Mijn vraag was: Is het sneller om de reacties te scheiden door ze in aparte tabellen op te slaan of door dit in 'de reacties tabel' als een veld aan te geven (zodat je moet filteren).

Janoz: mn asp/php scriptje hoeft die keuze toch niet te maken?

het is kiezen uit bijvoorbeeld:
code:
1
 SELECT * FROM NieuwsReacties WHERE TopicID=1"

en
code:
1
SELECT * FROM Reacties WHERE TopicID=1 AND TopicCategoryID=1"

pick the fastest! (ik heb niet zo'n grote database tot mijn beschikking dus kan niet testen)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

je script zal nog moeten bepalen of nieuwsReacties, artikelReacties, columnReacties of reviewReacties gekozen moet worden.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • oZy
  • Registratie: Juli 2001
  • Laatst online: 00:35
depends.. showarticle.asp?category=1&id=1 vs. shownews.asp?id=1

In het laatste geval zou het hardcoded zijn, net als op fok, maar dit is natuurlijk weer minder dynamisch..

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

Het is natuurlijk altijd (nja.. bijna altijd)sneller om je gegevens in meerdere tabellen op te slaan. Maar de vraag is of je dat wilt!

Wanneer je bijvoorbeeld een nieuwe categorie toevoegt, moet je er een nieuwe tabel bijmaken.. niet echt handig!

Verder is het natuurlijk veel mooier als je gegevens met dezelfde opmaak, in dezelfde tabel kwijt kan.

Wanneer je slim indexen zet (bijvoorbeeld op categoryID), zal het qua snelheid niet echt uitmaken...

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • oZy
  • Registratie: Juli 2001
  • Laatst online: 00:35
Precies! Ik heb dan ook gekozen voor de "alles in 1 tabel" manier.

Die andere manier had inderdaad een slechte normalisatie geweest. Laat dusty het maar niet zien. (8> It wasn't me!

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Beiden mogelijkheden werken.

Ik persoonlijk heb mijn nieuws gescheiden gedaan van mijn webboard. Hetzelfde met specials, staan ook in een aparte tabel.

In dit geval is het belangrijker wat je zelf wilt en wat je prettiger vindt werken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Orphix
  • Registratie: Februari 2000
  • Niet online
T.net en FOK hebben niks met elkaar gemeen. Daarom zou ik ze nooit bij elkaar gooien. Zeg je bijvoorbeeld 'ik wil voor elk sub-forum een aparte tabel' dan zeg ik nee, niet doen.
Je kan dan namelijk geen of moeilijk data-presentaties opvragen van het gehele forum. Bijvoorbeeld een active-topics maken is erg lastig, of de search.
Je moet dus bekijken of de onderdelen een samenhang hebben of niet.

  • oZy
  • Registratie: Juli 2001
  • Laatst online: 00:35
shit net te laat >:)

aangezien het aantal categorieën nog niet vaststaat is het verstandiger het in 1 tabel te houden, ik kan later altijd nog een scriptje maken die alles omzet in aparte tabellen, mocht de snelheid nog wat te wensen overlaten. tnx for the brainstorming :)

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op woensdag 27 maart 2002 16:18 schreef oZy het volgende:
Die andere manier had inderdaad een slechte normalisatie geweest. Laat dusty het maar niet zien. (8> It wasn't me!
je moet het normaliseren niet overwaarderen. Alles in perfecte derde normaal vorm hebben is niet altijd goed en een walhallah. Soms moet je ook naar de praktische kant kijken en rekening houden met de toekomst. Wil je misschien ooit de webboard compleet anders gaan doen, wil je misschien het nieuws anders gaan doen, etc. Wil je misschien een gedeelte (webboard) op een andere database laten draaien, waardoor je alleen de user tabel hoeft te synchroniseren om toch de hele site gewoon netjes te laten draaien.

Er is niet voor niets een 4e en 5e normaal vorm ( alhoewel dit de meeste mensen nooit nodig zullen hebben :+ )

Er zijn genoeg redenen te bedenken om af te wijken van de derde normaal vorm. Je moet het ook niet zien als een wet, meer als een richtlijn. Elk 'project' heeft zijn unieke eigenschappen, daardoor moet voor elk database model weer over nagedacht worden.

Zo ik heb weer genoeg mensen geschokeert vandaag >:) :Y)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • oZy
  • Registratie: Juli 2001
  • Laatst online: 00:35
Op woensdag 27 maart 2002 16:22 schreef Orphix het volgende:
T.net en FOK hebben niks met elkaar gemeen. Daarom zou ik ze nooit bij elkaar gooien. Zeg je bijvoorbeeld 'ik wil voor elk sub-forum een aparte tabel' dan zeg ik nee, niet doen.
Je kan dan namelijk geen of moeilijk data-presentaties opvragen van het gehele forum. Bijvoorbeeld een active-topics maken is erg lastig, of de search.
Je moet dus bekijken of de onderdelen een samenhang hebben of niet.
ik verwar fok en t.net niet, ik gebruik ze als voorbeeld omdat ze het juist verschillend aanpakken :) Maar bedankt voor de toevoegingen, had ik ook nog niet overzien. (tis al bijna weekend natuurlijk *ahem*)

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 10-09 13:37

Femme

Hardwareconnaisseur

Official Jony Ive fan

Bij een goed geïndexeerde tabel is het geen probleem om een paar miljoen messages in een tabel te stoppen. GoT heeft er meer dan 4 miljoen en daar merken we weinig van. Wat wel een probleem wordt is de search engine, maar dat heeft niet met de indeling van de tabellen te maken. MySQL Fulltext indexes werken niet op grote tabellen, dus je zult zelf een simpele search engine moeten bouwen (wat overigens niet moeilijk is).
Pagina: 1