Dois-je concevoir une table avec une clé primaire de type varchar ou int?

Je sais que c'est subjectif, mais j'aimerais savoir peuples avis et j'espère que certaines des meilleures pratiques que je peux appliquer lors de la conception de sql server le tableau de structures.

Je pense personnellement que l'incrustation d'une table fixe (max) longueur varchar est un non-non, parce que cela signifie avoir à aussi à propager la même longueur fixe à travers d'autres tables que de l'utiliser comme une clé étrangère. À l'aide d'un int, pour éviter d'avoir à appliquer la même longueur à travers le conseil d'administration, qui est lié à conduire à une erreur humaine, c'est à dire 1 table a varchar (10), et de l'autre varchar (20).

Cela ressemble à un cauchemar pour d'abord le programme d'installation, en plus c'est l'avenir du maintien de la tables est trop lourd. Par exemple, dire que le détrompeur colonne de type varchar devient soudainement 12 caractères au lieu de 10. Vous devez maintenant mettre à jour tous les autres tables, ce qui pourrait être une tâche énorme années en bas de la ligne.

Ai-je tort? Ai-je raté quelque chose ici? J'aimerais savoir ce que les autres pensent de ce sujet et si coller avec int pour les clés primaires est la meilleure façon d'éviter maintainace cauchemars.

  • S'il vous plaît, merci d'utiliser le numérique, discret type (par exemple int/bigint) pour votre table. Ou un guid avec newsequentialid c'est un autre débat...
  • longueur fixe de type varchar? Est-ce que même un sens? Vous ne définissez la longueur maximale d'une colonne de type varchar, pas la taille. en.wikipedia.org/wiki/Varchar
  • vous obtenez ma dérive, oui, je veux dire le maximum, qui est fixe. Désolé si j'ai offensé vous.
InformationsquelleAutor HAdes | 2009-08-19