Я в Firebird держу 3 домена (статичных типа)
D_CODE (varchar 64)
D_STRING (varchar 512)
D_TEXT (blob sub_type text)
других длин строк просто нет.
При хранении на диске они сжимаются хитрыми алгоритмами самого Firebird (RLE compression)
В памяти на клиенте находится только содержимое строки.
Валидаторы все типовые
вопрос в том, как гарантировать, что настройки валидаторов соотвестуют тем ширинам колонки, что выставлены сейчас в реальной базе? Если бы база (точнее ее схема) не менялось с течением жизни приложения, то и этого вопроса не было бы.
Менять настройки полей не в БД, а в конфигурационном файле, который одновременно может читать и обычный скрипт сайта, и специализированная система развертывания структуры БД.