Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund
Data & Databases Intermediate

Data Modelling That Survives the Second Year

Schema decisions that still hold up after two years of features nobody planned for.

6 students

SN Created by Sofia Navarro

  • Last updated August 2026
  • English
  • 12h 20m of material
  • 92 lessons

What you will learn

8 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Identify entities and relationships from a requirement rather than a wish list
  • Apply normal forms through the anomalies they actually prevent
  • Choose natural or surrogate keys with reasons you can defend later
  • Model temporal data so you can answer what a record looked like last March
  • Handle soft deletion without corrupting counts and unique constraints
  • Store money, currency and rounding correctly across regions
  • Design multi-tenancy at the isolation level your business needs
  • Run expand and contract migrations with dual writes and safe backfills

Course curriculum

8 modules · 92 lessons · 12h 20m of material

12 lessons running 1h 32m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

12 lessons running 1h 36m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

12 lessons running 1h 40m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

12 lessons running 1h 40m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

11 lessons running 1h 32m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

11 lessons running 1h 30m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

11 lessons running 1h 26m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

11 lessons running 1h 24m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

8 modules · 92 lessons

12h 20m total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • Solid SQL and experience with at least one production schema
  • Familiarity with migrations in any framework
  • Some exposure to systems that outlived their original design

About this course

Every schema looks fine in month one. The interesting question is what it looks like in month twenty-four, after pricing changed twice, a second country was added, and someone needed to know what the record looked like last March. This course is about designing for that future without over-engineering for a future that never arrives.

You start with the fundamentals done properly: identifying entities and relationships, normal forms explained through the anomalies they prevent rather than as rules to recite, natural against surrogate keys, and where denormalisation is a legitimate engineering decision instead of a shortcut. Then you meet the patterns that decide whether a model ages well. Temporal data and effective dating. Soft deletion and its many traps. Audit trails and event logs. Multi-tenancy at three isolation levels. Money, currency and rounding, which is where a surprising number of schemas break. Localisation of user-visible text.

A long section deals with change. Expand and contract migrations, dual writing during a transition, backfilling a large table without an outage, splitting a table that grew two responsibilities, and merging duplicate records that should never have existed.

Throughout you work on a single evolving system, a subscription business that changes its pricing model, adds a second region and acquires a competitor.

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

Examples use PostgreSQL, but the modelling decisions apply to any relational database. Notes cover where MySQL or SQL Server change a recommendation.

One module compares document and relational modelling for the same requirements, including where each becomes painful. The course itself is relational.

Each design exercise ships with a reviewed solution, an explanation of its trade-offs, and at least one alternative that is also defensible.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

No reviews yet

Nobody has reviewed this course yet, so there is no score to show. Buy it, work through it, and your review could be the one that helps the next developer decide.

Your instructor

SN

Sofia Navarro

Python and data engineer

  • 231 students taught
  • 11 courses published
  • 4.5 instructor rating
  • Python
  • SQL
  • PostgreSQL
  • Data engineering

Sofia builds the pipelines that keep analytics teams honest, mostly Python on top of PostgreSQL under uncomfortable load. She teaches schema design, indexing and query planning against anonymised production datasets rather than toy tables, then wires the same data into pandas so the SQL and the Python halves stop being separate skills. Expect to spend real time reading execution plans and rather less time reading slides. She consults on migrations for teams that cannot afford downtime.

$94 USD

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.