login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Reacties bundelen of apart?

Offline Maarten - 29/10/2005 02:05 (laatste wijziging 29/10/2005 02:05)
Avatar van MaartenErelid Hellow,

jullie weten wel dat ik bezig ben aan LinuxMasters.be, en ik zit met een twijfelachtige keuzeprobleem.

Wat is de beste oplossing en waarom is de andere geen goede oplossing?
Gebundeld
Alle reacties gaan in 1 tabel. Er komt een kolom bij, "type". Deze bevat dan bv. "polls", "tutorials", "scripts",.. om de reacties van elkaar te onderscheiden.
Pro: Weinig tabellen
Contra: Tabel krijgt een grote omvang (vertraagt dit de boel?)


In losse tabellen
Per reactieonderdeel een tabel:
bugs_reacties
polls_reacties
scripts_reacties
tutorials_reacties
...
Pro: Deze tabellen zullen kleiner qua omvang zijn
Contra: Ietsje meer tabellen

12 antwoorden

Gesponsorde links
Offline Gerard - 29/10/2005 02:19
Avatar van Gerard Ouwe rakker Ik zou gaan voor meerdere losse tabellen, hierbij is het dan makkelijker/sneller om te zoeken in deze tabellen. MySQL slaat namelijk de gegevens alsnog op in 1 file voor elke tabel. Op deze manier ben je dan het beste uit.

Mocht je in de toekomst toevallig een corrupte table hebben dan weet je ook gelijk dat niet heel je website direct op zijn gat ligt.
Offline Thomas - 29/10/2005 09:33
Avatar van Thomas Moderator Daarnaast kun je als je losse tabellen gebruikt ook onderling kleine verschillen introduceren (extra kolom in een bepaalde tabel) als dat nodig is - als je 1 tabel voor alle reacties gebruikt wordt dit een beetje lastig.
Offline BigBug - 29/10/2005 10:05 (laatste wijziging 29/10/2005 10:08)
Avatar van BigBug PHP expert FangorN spamt er weer op los!

Ik zou ook kiezen voor meerdere tabellen. Dit lijkt mij gewoon het snelst. Mocht er een tabel kapot gaan ligt niet gelijk heel je site aan diggelen...

Edit: @FangorN, GoeTzoO manG! 
Offline Thomas - 29/10/2005 10:09
Avatar van Thomas Moderator @bigbug: Je zegt precies hetzelfde als Proximus, maar dan in andere woorden... Had je niet beter kunnen antwoorden met "ik ben het met Proximus eens" dan te doen alsof je het zelf verzonnen hebt?
Offline BigBug - 29/10/2005 10:16 (laatste wijziging 29/10/2005 12:04)
Avatar van BigBug PHP expert Om eerlijk te wezen heb ik Proximus reactie niet eens gelezen Anders laat ik me meestal beinvloeden door anderen. Dus ik denk doe ik het een keer niet. En ja hoor, ik krijg alweer de schuld van afkijken ..

nemesis: Wat logisch is omdat je reactie 8 uur later is dan die van Prox.

bug: Dat kan ik zelf ook wel verzinnen hoor 
Offline Martijn1989 - 29/10/2005 11:32
Avatar van Martijn1989 PHP ver gevorderde Ja, en ik zou voor alles in 1 tabel gaan, lekker makkelijk 

Maarja, ik ben het er mee eens dat losse tabellen beter zijn.


Kunnen tabbelen in een mysql database kapot gaan dan?
Offline nemesiskoen - 29/10/2005 11:36
Avatar van nemesiskoen Gouden medaille

PHP expert
Ik zou eerst voor het 'alles in een tabel' gaan. Maar door argumenten van FangorN en Prox besef ik dat het beter is om verschillende tabellen te gebruiken.

Misschien in de vorm van een fictieve associatieve array:

reacties['forum']
reacties['nieuws']
reacties['poll']
Offline Maarten - 29/10/2005 11:59 (laatste wijziging 29/10/2005 12:17)
Avatar van Maarten Erelid nemesis: danku, die vorm is een goed idee.. ik wil namelijk toch nog een soort van overzicht scheppen in phpmyadmin als ik in de db snuffel 

Ook de argumenten van dat "site op z'n gat liggen" en "uitbreidingsmogelijkheden" zijn intressant, dus ik ga voor die fictieve associatieve.. tabelreeks(?) 

edit: f*ck; reacties[bugs] werkt niet in m'n query, ik moet er backticks rond zetten.. maar bon, alles is toch gecentraliseerd met functies en zooi, dus uiteindelijk moet ik toch niet zoveel queries meer typen.
Offline Frederic - 29/10/2005 12:56
Avatar van Frederic PHP ver gevorderde ik zie eerlijk gezegd het nut niet in van de beestjes

reacties['forum']
reacties['nieuws']
reacties['poll']

te noemen...

waarom niet gewoon

reacties_forum
reacties_nieuws
reacties_poll

of nog beter:

forum_reacties
nieuws_reacties
poll_reacties

want dan kan je bvb ook

forum_topics
nieuws_onderwerpen
poll_vragen

gaan gebruiken, wat véél overzichtelijker wordt aangezien alles alfabetisch gerangschikt wordt
Offline nemesiskoen - 29/10/2005 13:12
Avatar van nemesiskoen Gouden medaille

PHP expert
//pagina: reacties.php?type=1
  1. <?php
  2. if(is_numeric($_GET['type'])) {
  3. $dat = MySQL_fetch_array(MySQL_query("SELECT naam FROM reactieTypes WHERE id = '". $_GET['id'] ."'"),0);
  4. $q = MySQL_query("SELECT * FROM ´reacties[". $dat->naam ."]´");
  5. }
  6. ?>


Zo kun je dus je reactie 'layout' voor alles hetzelfde houden en al je reacties uit 1 pagina stompen.
Offline Maarten - 29/10/2005 13:37 (laatste wijziging 29/10/2005 13:37)
Avatar van Maarten Erelid @koen:
idd, zoiets heb ik ook in gedachten..

De delete pagina voor m'n reacties ook altijd dezelfde (mocht het iemand intresseren):

.htaccess: (hier zit gelijk ook een numeric-controle-ding in
  1. RewriteRule ^admin/reactie/verwijderen/([^.]+)/([0-9]+)/$ /index.php?mod=admin/reactie_verwijderen&type=$1&r_id=$2
  2. RewriteRule ^admin/reactie/bewerken/([^.]+)/([0-9]+)/$ /index.php?mod=admin/reactie_bewerken&type=$1&r_id=$2


reactie_verwijderen.php:
  1. <?php
  2. switch(htmlentities($_GET['type'] ,ENT_QUOTES)) {
  3. case 'bugtracker':
  4. $tabel = 'bugs';
  5. $redir = $_SERVER['HTTP_REFERER'];
  6. break;
  7. }
  8.  
  9. $check = mysql_query("SELECT gebruiker FROM `reacties[".$tabel."]` WHERE id = ".$_GET['r_id']);
  10. if(mysql_num_rows($check) > 0) {
  11. $gebruiker = mysql_result($check,0);
  12. if(!recht('modreply') && $gebruiker != $_SESSION['gebruiker']) {
  13. header("Location: ".$redir);
  14. } else {
  15. mysql_query("DELETE FROM `reacties[".$tabel."]` WHERE id = ".$_GET['r_id']);
  16. header("Location: ".$redir);
  17. }
  18. } else {
  19. header("Location: ".$redir);
  20. }
  21. ?>


En voor de rest heb ik gewoon een functie in de aard van
reactie(id,type);

aangezien de structuur altijd dezelfde is (id, gebruiker, datum, laatste_gewijzigd, bericht) 
Offline xSc - 31/10/2005 09:17
Avatar van xSc Onbekend Ooit weleens gehoord van normaliseren? Hooguit extra kolommen toevoegen om de performance te vergroten.

Lees dit maar eens:

http://www.yapf.net/faq.php?cmd=100&itemid=700
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.201s