Конкретный ответ на ваш вопрос (по крайней мере, для Oracle и, возможно, для других баз данных) заключается в том, что длина поля не имеет значения, только длина данных. Однако это не должно использоваться в качестве определяющего фактора относительно того, устанавливать ли поле на максимально допустимую длину или нет. Вот некоторые другие вопросы, которые вы должны рассмотреть, прежде чем увеличивать размеры полей.
Форматирование
Любой клиентский инструмент, который форматирует данные на основе размера полей, потребует особых соображений по форматированию. Например, в Oracle SQL * Plus по умолчанию отображается максимальный размер столбцов Varchar2, даже если длина данных составляет всего один символ. Сравнить ...
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;
Неверные данные
Длина поля обеспечивает дополнительный механизм , чтобы поймать / предотвратить плохие данные. Интерфейс не должен пытаться вставить 3000 символов в 100-символьное поле, но если это поле определено в 4000 символов, это может произойти. Ошибка не может быть обнаружена на этапе ввода данных, но система может столкнуться с проблемами в дальнейшем, когда другое приложение пытается обработать данные и заклинило. Например, если вы позже решите проиндексировать поле в Oracle, вы превысите максимальную длину ключа (в зависимости от размера блока и конкатенации). Видеть…
create index i1 on f1(a);
Память
Если клиентское приложение выделяет память, используя максимальный размер, приложение выделяет значительно больше памяти, чем необходимо. Особые соображения должны быть сделаны, чтобы избежать этого.
Документация
Размер поля обеспечивает другую точку данных документации о данных. Мы можем назвать все таблицы t1, t2, t3 и т. Д., А также все поля f1, f2, f3 и т. Д., Но, указав значимые имена, мы лучше поймем данные. Например, если в таблице адресов для компании с клиентами в США есть поле с именем State, состоящее из двух символов, мы ожидаем, что в нем будет использоваться двухбуквенное сокращение состояния. С другой стороны, если поле содержит сто символов, мы можем ожидать, что в поле будет указано полное имя состояния.
Несмотря на все сказанное, представляется разумным быть готовым к изменениям. Тот факт, что все названия ваших продуктов сегодня соответствуют 20 символам, не означает, что они всегда будут. Не идите за борт и наберите 1000, но оставьте место для возможного расширения.