I wrote the article so I obviously appreciate the value of database level constraints over or in addition to application level constructs, but I’d still classify my preferred design as “application-in”.
While developing features I’m constantly thinking about schema, but I try not to jump directly to it. However, when it’s time to write some migrations I try to be much more forward thinking than “what does the app need right now”, specifically in regards to constraints or obvious performance issues.
This is why you should design DB-out and not application-in.
I wrote the article so I obviously appreciate the value of database level constraints over or in addition to application level constructs, but I’d still classify my preferred design as “application-in”. While developing features I’m constantly thinking about schema, but I try not to jump directly to it. However, when it’s time to write some migrations I try to be much more forward thinking than “what does the app need right now”, specifically in regards to constraints or obvious performance issues.