Il est généralement recommandé d'utiliser des constantes nommées à la place des nombres magiques, mais cela est fastidieux et sujet aux erreurs en conservant une table de référence de base de données et un fichier de constantes nommées en synchronisation. Existe-t-il un moyen facile de synchroniser ces deux sources pour cette information, ou est-ce que je néglige une amélioration de conception évidente?Meilleure pratique pour synchroniser les constantes nommées dans les tables de référence de code et de base de données?
Si ma question n'est pas claire, voici un exemple. J'ai une table de référence avec 2 colonnes:
UserStatus
----------
UserStatusID
UserStatus
Donc, ce tableau associe un UsersStatusID 1 avec le UserStatus 'Active'. La table User repose sur cette table pour normaliser UserStatuses.
Ainsi, lorsque l'interrogation pour le statut du code d'un utilisateur, j'ai deux options:
SELECT UserStatusID FROM Users WHERE UserStatus = 1
OU
SELECT UserStatusID FROM Users WHERE UserStatus = ACTIVE_USER_STATUS_ID
meilleure pratique consiste à utiliser ce dernier de sorte que le sens du nombre 1 est clair . Mais cela signifie que je dois maintenir une liste complète des UserStatusID valides dans ma table UserStatus et dans mon code. Comment éviter d'avoir à garder à la fois la table de référence DB et le fichier de constantes mis à jour? J'utilise un fichier de constantes centralisé donc il n'y a que 1 place à mettre à jour pour mon code, mais y a-t-il un moyen d'éviter de mettre à jour un fichier de constantes quand un nouveau statut est introduit?
Je n'ai qu'une idée: Programmer un script à exécuter une fois par jour pour remplir un fichier de constantes via une requête des tables de référence dans la base de données. Est-ce la meilleure solution?