Honest Take — Before You Begin
Normalization theory will feel academic. First normal form, second normal form, Boyce-Codd -- it reads like a textbook because it is a textbook. Then you will encounter a polymorp…
Database Design & Modeling covers: Introduction to Database Systems, Fundamentals of Database Systems, Essential PostgreSQL. Master database design from first principles — normalization theory, entity-relationship modeling, schema design patterns, and the trade-offs between normalized and denormalized designs. Understand why Rails conventions sometimes conflict with good relational design.
has_many :through is a join table. Polymorphic associations are a design smell in relational theory — they cannot have foreign key constraints because the _type column determines which table to reference, and PostgreSQL cannot enforce that. STI (Single Table Inheritance) violates 1NF by allowing NULLable columns that are only relevant to specific types. MTI (Multi-Table Inheritance) is relationally cleaner but requires JOINs. Understanding normalization theory helps you make informed decisions about when to use Rails conventions and when to deviate. Database-level constraints (NOT NULL, UNIQUE, CHECK, foreign keys) are stronger than Rails validations because they protect against data corruption from raw SQL, background jobs, and bugs in your code.
This course unlocks once you've finished its prerequisite. Open prerequisite →
Normalization theory will feel academic. First normal form, second normal form, Boyce-Codd -- it reads like a textbook because it is a textbook. Then you will encounter a polymorp…
A customer changes their shipping address, and every order they ever placed now claims it shipped to the new house. Nobody wrote a bug. Someone, years ago, put shippingaddress on …
Two competent engineers normalize the same domain to 3NF and hand you two different schemas. Both are "correct." One of them will hurt in eighteen months. The tiebreakers — how to…
Rereading a book you've already read is one of the highest-leverage moves in technical learning — if something changed in you between reads. In PostgreSQL Deep Dive you read this …
Work through each item before the checkpoint.
Design a marketplace schema by hand — no rails generate, no shortcuts. You write the DDL, document the functional dependencies behind every normalization step, justify every denor…
6 lessons. Read in order; spiral back when you need to. By the end you'll have used the core ideas twice — once on the abstract, once on something you'll meet at work next week.