(大胆な思いなんですが....)
テーブル設計の項目定義では、型(文字列、日付等)と長さは最低限必要だとしているプジェクトが多いようです。
RDBでは可変長文字型がありま(Varchar,Varchar2等)。(SQL Serverだと上限は nvarchar(4000) などと制限は有りますが)
一般的な事務データ項目では、項目4000文字で充分でしょう。
可変長文字は領域の先頭の占有文字量が付加されますが、varchar(20)も varchar(4000)もnull時は占有量の差は小さいでしょう。
ということは、varchar()項目は全て varchar(4000)で定義しても、不具合はないのではと思うのです。
事務処理上で、住所や氏名の項目を 20文字や80文字で制限を加えるのは、オカシイと思うようになりました。文字数制限なしが本来の姿ではないかと。
コンピュータのリソース不足から、桁数制限を加えた経緯がありますが、リソースが拡大した今は、4000文字制約でよいのでは。
XMLで格納する手もありますが、扱いが煩雑なので、私は敬遠しています。
文字列項目を全てnvarchar(4000)で定義してみると、結構使えるし、チェックが軽くなり、コーディングも楽。推進派になりそうです。
#SQL Serverの場合、索引キーの上限が 900となっているので、少し考慮が要りますが。
勿論、コード体系などで桁数に意味を持たせる場合は、当てはまりません。
商品名などは帳票の印刷欄から制約したいケースがありますが、はみ出すときは、Font Sizeを小さくすることもあるので、
運用的に制約を設けて、システム的には設けないのが良いのではと思えてきました。
#現場で主張したら波風立つかも。
数字項目もint/long/decimalなど止めて Numeric(15) 一本で済ます手もありますが、、数字項目は、扱う範囲に意味があるので、使い分けしています。