Salut,
Voilà. J'ai découvert hier encore un de ces systèmes où on va taper dans 6 ou 7 bases différentes, de fournisseurs différents, faites de façon différente.
Qu'est ce que j'ai essayé de faire ? Un domaine d'objets 'métier' basé sur ces données, afin de les extraire avec des règle métier strictes et de pouvoir éventuellement les centraliser différemment.
Dans la théorie, c'est bien. C'est un bon sujet pour un ORM, des services...Mais....
Certains doivent savoir que si un sujet me touche vite dans les applis actuelles, c'est souvent que lorsqu'elles sont connectées à une base via un ORM quelconque, c'est vite du grand nawak avec de la génération de code spaghetti que je déteste.
Et voilà pourquoi :
Sur toutes les bases, 70% des tables disposent d'une clef primaire; 35% des tables contenant des données basées sur des dates contiennent des index et des tris sur les dates. 0% des relations sont matérialisées, il n'y a aucune intégrité.
La plupart des plans d'exécution des requêtes aboutissent à un scan des tables.
Et là j'ai compris. J'ai compris pourquoi SQLPro était si perplexe face à certaines technologie. J'ai compris que ce qui semble normal (des règles et une connaissance fondamentale des règles de gestion des données) n'était pas acquis pour tous, et que les "on ne fait pas de relation parce que c'est compliqué pour faire des mises à jour" était fait dans l'approbation béate collective.
Je dis SQLPro parce que souvent dans les débats sur les ORM, j'ai trouvé sa réserve quasi radicale et aveugle. Mais là je dois avouer que je l'ai dit : avant d'utiliser un ORM ou des ORM, assurez-vous de comprendre ce qu'est une base de données relationnelle et de comprendre la norme SQL.
J'me suis encore fait des potes :-)
SQLPro, à jamais tu seras le Yoda du SGBD.
Partager