私の推奨事項:本当に必要なだけ大きくしてください。
たとえば、郵便番号列の場合、10 ~ 20 文字で十分です。電話番号についても同様です。電子メールは 50 ~ 100 文字と長くなる場合があります。名前 - ええと、私は通常 50 文字で十分です。名についても同様です。本当に必要な場合は、いつでも簡単にフィールドを拡張できます。それは大したことではありません。
すべての varchar/nvarchar フィールドをできるだけ大きくしても意味がありません。結局、SQL Server ページは固定されており、1 行あたり 8060 バイトに制限されています。NVARCHAR(4000) の 10 個のフィールドを持つことは、単に問題を引き起こしているだけです.... (実際にそれらにあまりにも多くのデータを入力しようとすると、SQL Server があなたを怒らせます)。
非常に大きなフィールドが本当に必要な場合は、NVARCHAR/VARCHAR(MAX) を使用します。これらは、収まる限りページに格納され、大きくなりすぎると「オーバーフロー」ストレージに送信されます。
NVARCHAR 対 VARCHAR: これは、日本語、中国語、またはその他の非 ASCII スタイルの文字など、「特殊な」文字が本当に必要かということになります。ヨーロッパでは、一部の東ヨーロッパの文字でさえ VARCHAR フィールドで表すことができなくなりました (ハチェック (? スペル ?) が削除されます)。西ヨーロッパの言語 (英語、ドイツ語、フランス語など) はすべて、 VARCHAR。
しかし: NVARCHAR は常に、ディスク上と SQL Server メモリ内の 2 倍のスペースを使用します。本当に必要な場合は必要ですが、本当に必要ですか? :-) それはあなた次第です。
マルク