Немного сложно ответить без более широкого контекста (например, какие технологии вы используете, будь то новый проект, есть ли у вас какие-либо другие ограничения на реализацию и т. Д.).
но, вообще говоря, ясказал бы:
Если это новый проект, и у вас нет технологических ограничений, я бы рекомендовал использовать OR / M (я лично использую nHibernate).Вы можете легко настроить его под свои нужды, не беспокоясь о базовой БД.
в противном случае - кажется, что ваша оригинальная мысль - хорошая идея.В зависимости от используемой вами БД, вы можете, если хотите, создать ограничение для принудительного применения этой логики (лично я бы не рекомендовал этого, поскольку она переносит вашу бизнес-логику в вашу БД, где она не принадлежит).
Надеюсь, это поможет.