Bonjour à tous!
Avant toute chose, je tiens à préciser que je ne suis pas informaticien de formation. Malgré cela, je m’intéresse de prés à la programmation et j'ai l'occasion, dans mon travail de développer et mettre en oeuvre de petites applications comme celle qui m’amène à vous questionner. Il est donc possible que je ne prenne pas le sujet comme il le faudrait!
Je développe actuellement une application de reporting sous Access. Elle comporte une dizaine de tables, dont une (la plus grande) contient une trentaine de champs.
De manière à rendre le code plus agréable à lire et à travailler, j'ai décidé de mettre en place des objets représentant les éléments de mes tables. J'ai mis en place dans mes classes, un "mapping" dynamique , qui consiste à mettre la valeur de la table à jours lors d'un property let/Set. Cela fonctionne à priori bien.
Cependant pour créer mes relations entre objets, j'utilise un mécanisme sur lequel je doute:
-Je crée des collections que je maintien à jours, représentant tous les objets de la base.
-Lorsque je dois récupérer un objet pour créer une relation, je vais chercher le bon objet par son ID dans ladite collection.
Globalement, je garde constamment dans la mémoire vive une image de la Base complète...
En terme de performance, le résultat est au rendez vous, cependant, je n'ai à ce jour que peu d'enregistrements. Je crains qu'à terme, le nombre d'enregistrements vienne encombrer la mémoire vive et rende l'application inutilisable.
Je souhaite donc avoir votre avis sur le sujet. Quelles sont les bonnes pratiques (de manière générale, et pas que en VBA) pour mapper des objets sur une base de donnée.
Merci d'avance,
Alex
Partager