俺が今いるプロジェクトでは、テーブル参照/更新用のクラスに全ての型変換や妥当性チェックを
集中させています。DBMSの機能を使ってできるチェックは限られているから結局アプケーション側
にも妥当性チェックは残る。だったらいっそ、アプリケーション側にロジックを集中させようとい
う発想です。データベースへのアクセスはすべてそのクラスを通じて行うのでDBMSの制約機能を
使う必要はありません。だからDBMSはただのストレイジです。
最初は違和感があったけど、これはこれで理にかなっていると思う。
ちなみに、カラムは全部Varchar2(2000)です。各カラムの桁数制限やデータタイプは、それ用の
ユーザーテーブルで管理しているので、桁数、データタイプの変更はダイナミックに
行うことが可能です。