귀하의 질문에 대한 구체적인 대답은 (적어도 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;
불량 데이터
필드 길이는 불량 데이터 를 포착 / 방지하기위한 추가 메커니즘을 제공합니다. 인터페이스는 100 자 필드에 3000자를 삽입하지 않아야하지만 해당 필드가 4000 자로 정의 된 경우에는 그럴 수 있습니다. 데이터 입력 단계에서 오류가 발생하지 않지만 다른 응용 프로그램이 데이터를 처리하고 질식하려고하면 시스템이 더 이상 다운되지 않을 수 있습니다. 예를 들어, 나중에 Oracle에서 필드를 인덱싱하기로 결정하면 블록 크기와 연결에 따라 최대 키 길이를 초과하게됩니다. 만나다…
create index i1 on f1(a);
메모리
클라이언트 응용 프로그램이 최대 크기를 사용하여 메모리를 할당하면 응용 프로그램은 필요한 것보다 훨씬 더 많은 메모리를 할당합니다. 이를 피하기 위해 특별한 고려가 필요합니다.
문서
필드의 크기는 데이터에 대한 다른 데이터 문서 포인트를 제공합니다. 모든 테이블 t1, t2, t3 등과 모든 필드 f1, f2, f3 등을 호출 할 수 있지만 의미있는 이름을 지정하면 데이터를 더 잘 이해할 수 있습니다. 예를 들어, 미국에 고객이있는 회사의 주소 테이블에 State라는 필드가 두 문자 인 경우 두 문자 상태 약어가 입력됩니다. 반면에 필드가 100 자이면 전체 상태 이름이 필드에 나타날 것으로 예상 할 수 있습니다.
말씀 드린대로, 변화에 대비하는 것이 현명한 것 같습니다. 오늘날 모든 제품 이름이 20 자에 해당한다고해서 항상 그렇게되는 것은 아닙니다. 배 밖으로 나가서 1000으로 만들지 말고 그럴듯한 확장을위한 공간을 남겨 두십시오.