Data Modeling

This is where DynamoDB diverges hardest from SQL. You don't normalize into one table per entity — you start from your access patterns and design keys that serve them, often packing every entity into a single table. Done right, you fetch a parent and its children in one Query, no joins.

Done wrong, you get a table you can't query and a migration you can't run. So the trade-offs matter, and this section is honest about the cases where single-table design is the wrong call.

0 of 7 readQuiz

Start with single-table design — everything after it assumes that mental model.

Sketch the schema before you build it with the free Single-Table Design tool — it turns a list of access patterns into a PK/SK/GSI plan. Then try DynoTable to model and browse these layouts against a live table — and for the ad-hoc question your keys don't serve, its SQL Workbench runs JOIN, GROUP BY, and aggregates client-side.