Aller au contenu principal

ORM

Nous faisons le choix d'utiliser Prisma pour interagir avec notre base de données RDBMS. Comme nous souhaitons versionner le plus de choses, avoir un ORM permet de garder cette rigueur.

Sachez que Prisma a été développé avec TypeScript en tête. Le type des données retourné par les requêtes est dynamique en fonction de la requête. Par exemple si vous faites l'équivalent d'un SELECT * FROM users toutes les propriétés seront proposées par le linter TypeScript, alors que si vous faites un SELECT age FROM users seul l'âge sera proposé comme propriété pour chaque utilisateur.

Rappel

Le fait d'avoir une base de données avec des types garantis, qui se retrouvent dans le TypeScript, est dans la continuité de notre logique de typage "de bout en bout".

Un ORM a toujours ses limites si jamais vous voulez optimiser les requêtes… L'optimisation peut se faire en utilisant du SQL en direct mais vous perdez cette notion de types. Une alternative est de créer une VIEW en base de données, et avec son équivalence typée dans Prisma afin de garder la notion de typage strict.