Data Protection with Check Constraints and Triggers
You can’t, in sound morals, condemn a man for taking care of his own integrity. It is his clear duty.
One of the weirdest things I see in database implementations is that people spend tremendous amounts of time designing the correct database storage (or, at least, what seems like tremendous amounts of time to them) and then just leave the data unprotected with tables being more or less treated like buckets that will accept anything, opting to let code outside of the database layer to do all of the data protection. Honestly, I do understand the allure, in that ...