И? Указание check решит всю проблему. Пара символов - и вы гарантируете себе факт что в одном поле не появятся русские символы, а во втором херовый день рождения, и все это - без триггеров, регистраций и смс.
Простите а как валидация при каком нибудь POST запросе на изменение данных отличается от валидации в INSERT/UPDATE? Более того база не дура - она не будет валидировать данные если они не изменяются.
проверка на бэке как то сильно уступает проверке в базе? Какие нибудь аргументы?
В чем скрытость и неочевидность когда база тупо шлет вас лесом когда вы пытаетесь вставить в нее невалидные данные? то есть когда какой нибудь foreign key или not null шлет лесом - это неочевидность?