あなたの質問に対する具体的な答えは(少なくともOracleとおそらく他のデータベースの場合)、フィールドの長さは問題ではなく、データの長さだけです。ただし、これをフィールドを最大許容長に設定するかどうかに関する決定要因として使用しないでください。フィールドサイズを最大化する前に考慮する必要がある他の問題を次に示します。
書式設定
フィールドのサイズに基づいてデータを書式設定するクライアントツールでは、特別な書式設定を考慮する必要があります。たとえば、OracleのSQL * Plusは、デフォルトでは、データが1文字のみの場合でも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などを呼び出すことができますが、意味のある名前を指定することで、データをよりよく理解できます。たとえば、米国に顧客を持つ会社の住所テーブルに2文字のStateというフィールドがある場合、2文字の州の略語が入力されると予想されます。一方、フィールドが100文字の場合、完全な州名がフィールドに入ると予想される場合があります。
言われていることはすべて、変化に備えることは賢明に思えます。今日のすべての製品名が20文字に収まるからといって、常にそうだとは限りません。船外に出て1000にしないでください。もっともらしい拡張の余地を残してください。