La respuesta específica a su pregunta (al menos para Oracle y probablemente otras bases de datos) es que la longitud del campo no importa, solo la longitud de los datos. Sin embargo, esto no debe usarse como un factor determinante con respecto a si establecer el campo a su longitud máxima permitida o no. Aquí hay otros problemas que debe considerar antes de maximizar el tamaño de los campos.
Formateo
Cualquier herramienta de cliente que formatee los datos en función del tamaño de los campos requerirá consideraciones especiales de formateo. El SQL * Plus de Oracle, por ejemplo, muestra de forma predeterminada el tamaño máximo de las columnas Varchar2 incluso si los datos tienen solo un carácter. Comparar…
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
longitud del campo de datos incorrectos proporciona un mecanismo adicional para capturar / prevenir datos incorrectos. Una interfaz no debería intentar insertar 3000 caracteres en un campo de 100 caracteres, pero si ese campo se define como 4000 caracteres, simplemente podría hacerlo. El error no se detectará en la etapa de entrada de datos, pero el sistema puede tener problemas más abajo cuando otra aplicación intente procesar los datos y bloqueos. Como ejemplo, si luego decide indexar el campo en Oracle, excedería la longitud máxima de la clave (dependiendo del tamaño del bloque y la concatenación). Ver…
create index i1 on f1(a);
Memoria
Si la aplicación cliente asigna memoria usando el tamaño máximo, la aplicación asignaría significativamente más memoria de la necesaria. Tendrían que hacerse consideraciones especiales para evitar esto.
Documentación
El tamaño del campo proporciona otro punto de documentación de datos sobre los datos. Podríamos llamar a todas las tablas t1, t2, t3, etc. y a todos los campos f1, f2, f3, etc., pero al especificar nombres significativos entendemos mejor los datos. Por ejemplo, si una tabla de direcciones para una empresa con clientes en los EE. UU. Tiene un campo llamado Estado que tiene dos caracteres, esperamos que la abreviatura de estado de dos caracteres vaya en él. Por otro lado, si el campo tiene cien caracteres, podríamos esperar que el nombre de estado completo vaya en el campo.
Dicho todo esto, parece prudente estar preparado para el cambio. El hecho de que todos los nombres de sus productos en la actualidad tengan 20 caracteres no significa que siempre lo harán. No se exceda y llegue al 1000, pero deje espacio para una expansión plausible.