The schema was stable. Then the change request landed: add a new column.
A new column is never just a column. It affects queries, indexes, data pipelines, API contracts, and the shape of every tool that touches the database. Add it wrong, and performance drops or data breaks. Add it right, and it unlocks new features without risk.
First, define the purpose. Every new column should have a clear role in the dataset. Name it in a way that makes sense in six months, not just today. Keep it consistent with existing naming conventions to avoid confusion.
Next, choose the type. If you store text, use the smallest type that works. If it’s numeric, pick exact precision for finance, approximate for metrics. A mismatched type can slow queries or generate silent errors.
Consider defaults. If the column will be required for every row, set a default value. This prevents NULL drift, where missing data creeps into reports. For historical data, either backfill with calculated values or mark them as incomplete.