Конкретна відповідь на ваше запитання (принаймні для Oracle та, ймовірно, інших баз даних) полягає в тому, що довжина поля не має значення, а лише довжина даних. Однак це не повинно використовуватися як визначальний фактор щодо того, встановлювати поле максимальною допустимою довжиною чи ні. Ось деякі інші проблеми, які слід розглянути, перш ніж збільшити розміри полів.
Форматування
Будь-який клієнтський інструмент, який форматує дані залежно від розміру полів, потребує особливих міркувань щодо форматування. Наприклад, SQL * Plus Oracle * 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, але не залишайте місця для правдоподібного розширення.