Mon expérience, reste assez limitée à MySQL/mariadb et SQLite. et essentiellement derrière du PHP.
quelques points que j’ajouterais :
1) "Les ORM sont bien pour les requêtes de base." => c'est vrai, à condition de bien connaître les ORM, que l'ORM soit bien fournie.
2) Sur l'indépendance de la base de donnée, il faut encore que les bases de données aient les même fonctions. Si pour les fonctions basiques, il y a des équivalences dans dans toutes les bases de données, pour des fonctions plus spécifiques ou elles ne sont pas présentes dans l'ORM (comme right joint avec doctrine) ou elles ne sont pas compatibles avec la DB. (ça m'est déjà arrivé de me faire piéger lors de tests de passer de mariadb à sqlite, d'avoir des erreurs sur sqlite uniquement)
Enfin pour moi, pour bien utiliser sa DB, même avec un ORM, il faut bien connaître sa BD. Du coup, pour bien utiliser un ORM, il faut apprendre DB + ORM =, > 2 * plus d’éléments à apprendre.
Mais il y a quelques points qui obligent à savoir travailler avec ORM :
- la majorité des développement se font avec.
- on trouve sur tous les frameworks (en tout cas le principal) ont un ORM (plus ou moins dédié)
- certains disent que c'est plus sécurisé. (j'aimerais bien que l'on me dise pourquoi, c'est vrai que sur php, msqli c'était mal foutu sur ce point là, mais PDO fait bien le travail) et les entreprises aiment ça.
Du coups, mon avis sur la question, les ORM sont utile dans les cas simples, çà simplifie certain le travail. comme la migration, certain contrôle. Mais complique la tache dés que l'on a quelle chose de complexe à demander.
Le SQL est un langage simple, mais écrire une bonne requête SQL, et de géré une base de donnée, une spécialité.
Alors pour ou contre? je n'est pas d'avis, j'ai une référence à ne pas les utiliser, si je peux. Je trouve que comme ça, on a un meilleure contre sur sa DB.
Partager