Beste mensen,
ik zit met een dilemma wat betreft de overzichtelijkheid en snelheid van m'n code. Ik heb een User class met daarin user-specifieke variabelen en methoden. Tot nu toe gaat dit allemaal goed. De manier waarop deze Users worden geinitieerd is als volgt:
Nu kan ik dus makkelijk een User object aanmaken door gewoon new User($ID) aan te roepen. Het maakt de code erg overzichtelijk en onderhoudbaar.
Ik heb nu ook een PrivateMessage class, waarbij ik ook moet werken met Users (namelijk de zender en ontvanger). Een PrivateMessage object wordt op dezelfde manier als een User geinitieerd (dus ID meegeven en de class zoekt de rest op in de database). Ook dit is overzichtelijk.
Maar het probleem is, dat ik nu wel erg veel queries krijg, wat dus (neem ik aan) wel effect heeft op de uiteindelijke snelheid van m'n website. Is het niet beter om de PrivateMessage class gelijk in dezelfde query alle info van de users ook op te zoeken, en dan de users zo instantieren:
Aangezien ik veel user-variabelen heb wordt het dan niet erg overzichtelijk/onderhoudbaar, maar het komt wel de snelheid ten goede (neem ik aan) aangezien ik dan 3 queries reduceer tot 1. Wat vinden jullie hiervan?
ik zit met een dilemma wat betreft de overzichtelijkheid en snelheid van m'n code. Ik heb een User class met daarin user-specifieke variabelen en methoden. Tot nu toe gaat dit allemaal goed. De manier waarop deze Users worden geinitieerd is als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?php // User-class, gereduceerd tot construct en 2 variabelen class User { private $ID; private $username; private $passwordHash; public function __construct($ID) { $db = Database::getInstance(); $db->execQuery("SELECT username,passwordHash FROM users WHERE ID = $ID"); $user = $db->fetchObject(); $this->ID = $ID; $this->username = $user->username; $this->passwordHash = $user->passwordHash; } } ?> |
Nu kan ik dus makkelijk een User object aanmaken door gewoon new User($ID) aan te roepen. Het maakt de code erg overzichtelijk en onderhoudbaar.
Ik heb nu ook een PrivateMessage class, waarbij ik ook moet werken met Users (namelijk de zender en ontvanger). Een PrivateMessage object wordt op dezelfde manier als een User geinitieerd (dus ID meegeven en de class zoekt de rest op in de database). Ook dit is overzichtelijk.
Maar het probleem is, dat ik nu wel erg veel queries krijg, wat dus (neem ik aan) wel effect heeft op de uiteindelijke snelheid van m'n website. Is het niet beter om de PrivateMessage class gelijk in dezelfde query alle info van de users ook op te zoeken, en dan de users zo instantieren:
PHP:
1
2
3
4
5
| public function __construct($ID, $username, $passwordHash) { $this->ID = $ID; $this->username = $username; $this->passwordHash = $passwordHash; } |
Aangezien ik veel user-variabelen heb wordt het dan niet erg overzichtelijk/onderhoudbaar, maar het komt wel de snelheid ten goede (neem ik aan) aangezien ik dan 3 queries reduceer tot 1. Wat vinden jullie hiervan?