Data Protection Patterns with Check Constraints and Triggers
Louis Davidson · Apress eBooks · 2020
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 designing something that is as good as they can) and then just leave the data unprotected with tables being more or less buckets that will accept anything, opting to let code outside of the database layer to do all of the data protection aside from perhaps using an integer datatype to hold whole numbers. Honestly, I do understand the allure in that the more constraints you apply, the harder development is in the early stages of the project, and the programmers honestly do believe that they will catch everything. The problem is there is rarely a way to be 100% sure that all code written will always enforce every rule.