RailsConf 2019 - Database Design for Beginners by David Copeland - YouTube
DB design is how we ensure our database is the source of truth
Step 1: what facts do we want to record
The act of DB design is really about understanding the requirements very clearly so the first step is to write them down.
Anomalies when the data model prevents the storage of certain facts, allows ambiguity to exist, or requires deleting one fact to delete another. Normalization is the process by which we remove anomalies from our design.