Über einen Trigger könnte man das machen. Der prüft bei INSERT und UPDATE ob die Bedingung verletzt wird und bricht dann mit möglichst viel Getöse ab.
Und zusätzlich trotzdem in der Programmlogik, oder in der Query für INSERT / UPDATE, denn einen Fehler selber erkennen ist besser als dass einem der ganze Salat um die Ohren fliegt :-)
Weitere Modellierung würde ich persönlich hier gar nicht erst versuchen.