La risposta specifica alla tua domanda (almeno per Oracle e probabilmente altri database) è che la lunghezza del campo non ha importanza, ma solo la lunghezza dei dati. Tuttavia, questo non dovrebbe essere usato come fattore determinante per stabilire se impostare il campo alla sua lunghezza massima consentita o meno. Ecco alcuni altri problemi che dovresti considerare prima di massimizzare le dimensioni dei campi.
Formattazione
Qualsiasi strumento client che formatta i dati in base alla dimensione dei campi richiederà particolari considerazioni sulla formattazione. Oracle * Plus di Oracle, ad esempio, per impostazione predefinita visualizza la dimensione massima delle colonne Varchar2 anche se i dati sono lunghi solo un carattere. Confrontare…
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;
Bad dati
lunghezza campo fornisce un ulteriore meccanismo di cattura / evitare che dati errati. Un'interfaccia non dovrebbe tentare di inserire 3000 caratteri in un campo di 100 caratteri, ma se quel campo è definito come 4000 caratteri, potrebbe semplicemente. L'errore non verrebbe rilevato nella fase di immissione dei dati, ma il sistema potrebbe avere problemi più in basso quando un'altra applicazione tenta di elaborare i dati e soffoca. Ad esempio, se in seguito decidessi di indicizzare il campo in Oracle, supereresti la lunghezza massima della chiave (a seconda della dimensione del blocco e della concatenazione). Vedere…
create index i1 on f1(a);
Memoria
Se l'applicazione client alloca memoria utilizzando le dimensioni massime, l'applicazione allocerebbe molta più memoria del necessario. Considerazioni speciali dovrebbero essere fatte per evitare questo.
Documentazione
La dimensione del campo fornisce un altro punto di documentazione per i dati. Potremmo chiamare tutte le tabelle t1, t2, t3, ecc. E tutti i campi f1, f2, f3, ecc., Ma specificando nomi significativi comprendiamo meglio i dati. Ad esempio, se una tabella di indirizzi per un'azienda con clienti negli Stati Uniti ha un campo chiamato Stato di due caratteri, ci aspettiamo che l'abbreviazione dello stato di due caratteri vada in esso. D'altra parte, se il campo è composto da cento caratteri, potremmo aspettarci che il nome completo dello stato venga inserito nel campo.
Detto questo, sembra prudente essere preparati al cambiamento. Solo perché tutti i nomi dei tuoi prodotti oggi si adattano a 20 caratteri non significa che lo faranno sempre. Non esagerare e renderlo 1000, ma lasciare spazio per un'espansione plausibile.