Coding Rules: enums en base de données, privilégier la compréhension

enumPour le stockage des énumérations en base de données revient la sempiternelle question au sein de l’équipe (Yoda Style…): on stocke la valeur entière où la chaîne de caractères?

Dans le cas d’enum Flags, la question ne se pose pas, on va privilégier de stocker la valeur entière en base afin de ne pas avoir à gérer la concaténation des strings, ce qui deviendrait rapidement un vrai casse-tête en maintenance et dégraderait rapidement les performances.

Pour ma part, je privilégie la compréhension au gain de taille en mémoire (je ne parle même pas du gain en performances, il est ridicule). Je préfère faciliter la vie de celui qui ira voir la base de données et verra des CREATED ou VALIDATED plutôt que 1 ou 9 sur des milliers de lignes. Car encore faut il avoir accès au code, ou à la doc du code (eh oui, il arrive que les colonnes de la BDD ne soient pas documentées…).

Attention, si vous faites quand même le (mauvais 🙂 ) choix de stocker l’information sous sa forme entière, pensez dans le cas d’un enum C# à bien fixer la valeur lors de sa déclaration dans le code. Cela vous évitera d’avoir à migrer toutes les données en base le jour où vous ajouterez une valeur possible à l’enum qui s’intercale entre deux valeurs existantes.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s