Bonjour,
Je rencontre souvent le problème sur la manière de récupérer des données complexes d'une base de données avec toujours l’opposition performance / maintenabilité.
Du coup je me renseigne sur le modèle MVC et plus précisément sur DAO qui me plaît dans la théorie mais qui, dans la pratique, garde les mêmes problèmes.
J'aimerais donc avoir vos avis éclairés sur le problème pratique suivant.
En partant du modèle suivant : http://www.odi.ch/prog/design/php/guide.php (section Use Value Objects (VO) et Use Data Access Objects (DAO)).
Chaque table de la BDD possède une structure qui définie tous et uniquement les champs de la table (VO).
Chaque table de la BDD possède une classe qui permet de charger, supprimer et sauvegarder une ligne de la table (DAO) à partir de l'objet VO.
Jusque là, le système est carré, et ça fait plaisir.
Pour gérer des blogs et des cas simples de ce genre, pas de soucis.
Le problème arrive dans dans le cas où on doit traiter un grand nombre de données qui sont croisées dans plusieurs tables de la base, on a deux solutions :
- le plus directe et le plus performant, je pense : une grosse requête qui renvoi tout d'un coup, mais plus possible d'utiliser nos classes DAO et VO (code gtéré dans le conrôleur).
- le plus "propre" : on passe quand même par les DAO et VO mais on exécute du même coup beaucoup BEAUCOUP BEAUCOUP plus de requêtes.
Dans mon cas, j'utilise tout le temps la première méthode. Mais je réfléchis souvent comment le faire avec la seconde méthode (sans succès jusqu'à présent).
Je vous remercie d'avance pour vos remarques liées à vos propres expériences et techniques.
Partager