30-12-2009, 08:50 PM
(30-12-2009, 07:35 PM)OncleJames a écrit : Les outils peuvent servir dans les deux sens (Doctrine par exemple), je ne pense pas à moins que ce soit dans un but d'apprendre, que la ré écriture des mappings, recherche des tuples via les tables parents/enfants soit vraiment utile, c'est long et pas forcément simple.
Moi je pense que sa peut-être très utile mais dans des contextes bien précis. Pour un soucis de performance définir un mapping à son image est vraiment avantageux. Les mappings ralentisse en générale le code, car il n'optimise pas du tout les requêtes vers la BD. En revanche, avec un mapping personnel, les mappings peuvent au contraire l'accélérer puisqu'on sait spécifiquement à quoi sert chaque table de la BD. Exemple, tu a une table nom d'utilisateurs et tu sais que souvent elle sera accédé avec Ajax pour l'auto-complétion ou la validation (genre je tape kev et on me propose kevin233, kevin234...etc) alors on sait que les requêtes se feront par groupe d'utilisateurs commençant par. Alors pourquoi ne pas charger un groupe d'utilisateur avec une seule requête et les mettre en cache plutôt que de faire plusieurs select? (ok mon exemple est assez mauvais j'avoue mais vous comprenez le principe).
J'ai déjà fait un petit mapping pour un cours de Génie Logiciel (Internet), le principe est d'offrir des méthodes universelles pour charger et enregistrer sur la BD. Personnellement j'avais une classe Requete qui travaillait avec une factory pour charger les objets à la volé. Les objets avaient une méthode commit() (je suis un vieux d'oracle) qui mettait à jour ou insérait l'objet. Bref ce n'était rien de bien immense ni de compliqué et sa ma pris très peu de temps à faire et c'était pourtant bien plus performant qu'un ORM existant et adapté à mes besoins.