La réponse spécifique à votre question (au moins pour Oracle et probablement d'autres bases de données) est que la longueur du champ n'a pas d'importance, seulement la longueur des données. Cependant, cela ne doit pas être utilisé comme facteur déterminant pour définir si le champ doit avoir sa longueur maximale autorisée ou non. Voici quelques autres problèmes que vous devriez considérer avant de maximiser la taille des champs.
Formatage
Tout outil client qui formate les données en fonction de la taille des champs nécessitera des considérations de formatage spéciales. Par exemple, SQL * Plus d'Oracle affiche par défaut la taille maximale des colonnes Varchar2 même si les données ne comportent qu'un caractère. Comparer…
create table f1 (a varchar2(4000), b varchar2(4000));
create table f2 (a varchar2(5), b varchar2(5));
insert into f1 values ('a','b');
insert into f2 values ('a','b');
select * from f1;
select * from f2;
La
longueur du champ de données incorrectes fournit un mécanisme supplémentaire pour intercepter / empêcher les données incorrectes. Une interface ne doit pas tenter d'insérer 3000 caractères dans un champ de 100 caractères, mais si ce champ est défini comme étant de 4000 caractères, c'est possible. L'erreur ne serait pas détectée à l'étape de la saisie des données, mais le système peut avoir des problèmes plus bas lorsqu'une autre application essaie de traiter les données et les étranglements. Par exemple, si vous décidez ultérieurement d'indexer le champ dans Oracle, vous dépasserez la longueur de clé maximale (selon la taille du bloc et la concaténation). Voir…
create index i1 on f1(a);
Mémoire
Si l'application cliente alloue de la mémoire en utilisant la taille maximale, l'application allouerait beaucoup plus de mémoire que nécessaire. Il faudrait prendre des précautions particulières pour éviter cela.
Documentation
La taille du champ fournit un autre point de données de documentation sur les données. Nous pourrions appeler toutes les tables t1, t2, t3, etc. et tous les champs f1, f2, f3, etc., mais en spécifiant des noms significatifs, nous comprenons mieux les données. Par exemple, si une table d'adresses pour une entreprise avec des clients aux États-Unis a un champ appelé État qui est de deux caractères, nous nous attendons à ce que l'abréviation d'état à deux caractères y soit incluse. D'un autre côté, si le champ comporte une centaine de caractères, nous pouvons nous attendre à ce que le nom complet de l'état soit inscrit dans le champ.
Cela dit, il semble prudent de se préparer au changement. Ce n'est pas parce que tous les noms de vos produits contiennent aujourd'hui 20 caractères qu'ils le seront toujours. N'exagérez pas et ne faites pas 1000, mais laissez de la place pour une expansion plausible.