Agile Data

Database Design Strategies

Follow @scottwambler on Twitter!

This page is a work in progress.

The goal of this article is to describe important database design heuristics that will enable greater agility in the use of the database. It is not to describe the process of agile design.

Data Normalization

Data Normalization

Context Counts: Design for the Database Type

Future Proofing Your Database Design


5. Clean Database Design in Context

The following table summarizes the trade-offs associated with clean database design and provides advice for when (not) to adopt it.

Advantages
  • Easier to understand and evolve
  • Easier to test
  • Increases ability to evolve data hosting strategy
Disadvantages
  • Requires investment to keep clean, including in agile design modeling and database refactoring
  • Existing legacy designs often have significant technical debt that needs to be addressed before your design is sufficiently clean
When to Adopt This Practice My knee jerk reaction is to say always, but that wouldn't be accurate. Sometimes time is of the essence and it makes sense to accept technical debt now and decide to pay it down in the future. Hopefully that is rare decision that when it is made is a prudent and deliberate one.

6. Related Resources