Question

Je suis en train de concevoir une base de données et j'ai récemment nommé une colonne dans une table DayOfWeek, en oubliant complètement que DayOfWeek est une fonction intégrée de SQL Server. Maintenant, je décide si je devrais le laisser tel quel et faire référence à la colonne entre crochets [DayOfWeek] ou changer le nom de la colonne pour éviter tout conflit à l'avenir. Je ne suis pas trop loin dans le projet, donc le changer n'est pas trop difficile. Le débat dans ma tête est que le nom de la colonne de DayOfWeek est tout à fait logique, alors je veux vraiment l’utiliser ... mais c’est un mot réservé ... et pourrait causer de la douleur à l’avenir Je dois toujours mettre des crochets autour de cela lorsque je fais référence à la colonne).

Qu'est-ce que tout le monde pense?

Était-ce utile?

La solution

Je voudrais le changer - j'ai une table héritée appelée user - c'est un problème avec les crochets tout le temps. peut-être l'appeler DayOfWeekName ou DayOFWeekId

Josh

Autres conseils

Jeff,

Si vous n'êtes pas trop loin du dossier pour renommer la colonne (relativement) sans douleur, je vous recommande de le changer. Vous avez identifié un casse-tête futur probable pour l'équipe d'entretien, et je suppose qu'il serait en fait moins coûteux (au fil du temps) de le nettoyer maintenant, d'autant plus que renommer quelque chose n'est pas un enfer, car le l'avènement d'une fonctionnalité de recherche et de remplacement réellement efficace dans les éditeurs de texte et les IDE.

La partie vraiment difficile de le renommer acquiert la compréhension nécessaire pour faire le travail en toute sécurité. Vous êtes unique (en tant qu'auteur) en ayant cette compréhension. Si vous me demandiez (par exemple) de faire le travail, alors ce ne serait probablement pas une proposition commerciale rentable.

Alors ... +1 pour réparer vous-même la ventouse ... et +2 pour ne plus le refaire; -)

Salut. Keith.

Je m'assure toujours de ne jamais utiliser un mot-clé comme point de départ d'une variable / d'un objet / d'une fonction simplement parce que vous n'êtes jamais sûr que votre langue cible l'appréciera. Il peut souvent générer des erreurs loufoques qui prennent un certain temps à localiser. Même si la vérification de la syntaxe le détecte, cela signifie que vous avez perdu plus de temps que s'il s'agissait d'un nom différent tel que FurryKitten .

Je voudrais éviter DayOfWeek et opter pour quelque chose de complètement différent, peut-être Weekday ou DayName . Cela vous évite des tracas.

De plus, les crochets créent simplement des maux de tête et de nombreux développeurs SQL n'utilisent pas les crochets. Les nouveaux développeurs finiront par créer des "non-crochets". code par habitude pendant un certain temps après leur arrivée dans l’équipe. Les conventions peu communes doivent être évitées si possible.

changez-le si c'est facile. Mais comme bonne pratique, j'utiliserais des crochets partout. Une fois que vous vous êtes habitué, ne vous faites plus de peine que de laisser un espace entre les mots.

Nous avons ici une table appelée Utilisateur. Si possible, je le changerais. Bien que Josh ait raison, vous pouvez placer des crochets pour indiquer qu’il s’agit d’un tableau, cette tâche vieillit très rapidement. L'utilisation de mots réservés en tant que tableaux rend également la tâche difficile aux autres développeurs. Si quelqu'un ne sait pas qu'il s'agit d'un mot réservé, il peut être difficile de déterminer pourquoi une requête ne fonctionne pas.

Si vous utilisez une bibliothèque d'abstraction / adaptateur de base de données pour obtenir des données de la base de données, ne vous inquiétez pas. La classe échappera aux noms de colonnes pour vous. Si vous écrivez vous-même des requêtes SQL, cela peut poser quelques problèmes. Vous devez échapper les noms de colonne dans vos requêtes.

P.S. Je me souviens, quelques fois j'étais dans une situation comme vous. Mais j'ai été nommé colonne en tant que "commande". : -)

J'éviterais aussi d'utiliser des mots réservés, vous pouvez facilement avoir des ennuis si vous ne faites pas attention.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top