The short answer is that table design in a NoSQL database like DynamoDB is different than in a SQL database. DynamoDB is built to handle internet scale, which gives it some distinct advantages.
****What is internet scale?****
DynamoDB supports some of the largest scale applications in the world by providing consistent, single-digit millisecond response times at any scale. With DynamoDB, you can build applications with virtually unlimited throughput and storage.
To enable this extreme size and performance for your data, there is a trade-off: you have to partition your data. Your table is laid out in storage by the primary key that you query by. To query by additional factors, you can create Global Secondary Indexes and Local Secondary Indexes. You can learn more about these indexes and how to use them here: https://medium.com/@jun711.g/aws-dynamodb-global-and-local-secondary-indexes-comparison-80f4c587b1d7
To data model in DynamoDB, you can use a tool called NoSQL Workbench. This tool is available for download here: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/workbench.html
If you want to learn more about DynamoDB, there are some good workshops available here: https://amazon-dynamodb-labs.workshop.aws/ Answer from Ted Trentler on repost.aws
AWS
docs.aws.amazon.com › amazon dynamodb › developer guide › best practices for designing and architecting with dynamodb
Best practices for designing and architecting with DynamoDB - Amazon DynamoDB
1 month ago - Learn about best practices for designing and architecting with Amazon DynamoDB, a NoSQL database service. This page covers key differences between relational and NoSQL design, two key concepts for NoSQL design, and a general approach to NoSQL design. Receive specific guidance on partitions, ...
Reddit
reddit.com › r/aws › single table design for dynamodb: the reality
r/aws on Reddit: Single table design for DynamoDB: The reality
December 13, 2023 - Making a "single table" the primary design goal is bad - I don't think it takes any concrete numbers to see that. But if you want to learn more about the importance of item size, data types, the way that various request types are metered (with some numbers included), I would recommend the following videos. Seemingly small differences can manifest in surprisingly meaningful ways - there is a lot of nuance in DynamoDB data modeling.
How to design a single dynamodb table with arbitrary number of attributes. Jul 14, 2021
r/aws 5y ago
How many people are doing true "single table" dynamo DB (vs multiple tables) Jan 22, 2019
r/aws 7y ago
17:56
Designing a DynamoDB Table in 4 Steps: From Entities to Access ...
13:40
DynamoDB Single Table Design: Simplify Your Code and Boost ...
58:29
Fundamentals of Amazon DynamoDB Single Table Design with Rick ...
DynamoDB Data Modeling Best Practices - AWS
38:12
AWS DynamoDB Tutorial For Beginners - YouTube
01:05:29
Common Single-Table design modeling mistakes with DynamoDB - YouTube
DeBrie Advisory
alexdebrie.com › posts › dynamodb-single-table
The What, Why, and When of Single-Table Design with DynamoDB | DeBrie Advisory
February 5, 2020 - In our example above, we want to get both a Customer record and all Orders for the customer. Many developers apply relational design patterns with DynamoDB even though they don't have the relational tools like the join operation. This means they put their items into different tables according to their type.
Reddit
reddit.com › r/aws › dynamodb single table deign: simple guide to modeling & querying on to many relationships. (using excel to plan out the queries)
r/aws on Reddit: DynamoDB Single Table Deign: Simple Guide To Modeling & Querying On To Many Relationships. (Using Excel to plan out the queries)
October 3, 2022 - I'd replace Excel by an AWS made tool called NoSQL Workbench ; it's dedicated to DynamoDB and allows you, among other things, to create "facets" (data access patterns) and add sample data so you can see the table either per facet or entirely. ... One of the things that I hear about single table design is that you need to understand all your access patterns up front.
DEV Community
dev.to › urielbitton › advanced-single-table-design-patterns-with-dynamodb-4g26
Advanced Single Table Design Patterns With DynamoDB - DEV Community
January 7, 2025 - These concepts will easily level up your understanding of DynamoDB and allow you to build more performant and scalable databases than ever before. The single table design in key-value databases aims to solve the issue of querying multiple entities to fetch related data and to reduce your table costs to one table’s minimal cost.
Momento
gomomento.com › home › single table design for dynamodb: the reality
Single table design for DynamoDB: The reality - Momento
June 7, 2024 - The optimal number of tables for a particular DynamoDB data model might be one, but often it will be more. Oh, you’re in for the whole story? Great – let’s start at the beginning. Yes! There is definitely something important to understand from the early learnings that first prompted the “single table design” phrase.
DEV Community
dev.to › aws-builders › single-table-design-in-aws-dynamodb-ld8
Single Table Design in AWS DynamoDB - DEV Community
August 31, 2024 - By designing your PK and SK to support your querying patterns, you can retrieve related items using a single query. This eliminates the need for costly table scans and reduces the amount of throughput consumed. ... Storing related entities in a single table can help reduce storage costs compared to storing them in separate tables. DynamoDB charges based on the amount of data stored, so minimizing data duplication across tables can lead to cost savings.
AWS
docs.aws.amazon.com › amazon dynamodb › developer guide › data modeling for dynamodb tables › data modeling foundations in dynamodb
Data Modeling foundations in DynamoDB - Amazon DynamoDB
Explore the foundations of data modeling in DynamoDB, examining the advantages and disadvantages of single table and multiple table design patterns to optimize data access, performance, and cost.
OneUptime
oneuptime.com › home › blog › how to implement dynamodb single-table design
How to Implement DynamoDB Single-Table Design
January 26, 2026 - Instead of creating separate tables for users, orders, and products, you store them all together with carefully designed partition keys and sort keys. This approach might seem counterintuitive if you come from a relational database background, but it unlocks significant performance and cost benefits in DynamoDB.
GitHub
github.com › aws-samples › amazon-dynamodb-design-patterns
GitHub - aws-samples/amazon-dynamodb-design-patterns: This repo contains sample data models to demonstrate design patterns for Amazon DynamoDB. · GitHub
A good design is achieved after multiple review iterations. In general, maintain as few tables as possible in an Amazon DynamoDB application, and if it suits the use case then store all the entities in a single table.
Starred by 249 users
Forked by 46 users
Medium
arunrajeevan.medium.com › single-table-design-aws-dynamodb-cffd230a371f
Single Table Design — AWS DynamoDB | by Arun Rajeevan | Medium
January 29, 2024 - In the example below, we have a DynamoDB table that contains actors and the movies in which they have played. The primary key is a composite primary key where the partition key is the actor’s name and the sort key is the movie name. Reducing the number of requests for an access pattern is the main reason for using a single-table design with DynamoDB
Drizzle ORM
orm.drizzle.team
Drizzle ORM - next gen TypeScript ORM.
Commutativity checks were updated for PostgreSQL and MySQL. Before, create_index statements could be reported as non-commutative even when they targeted different tables, and --ignore-conflicts could still collapse multi-parent history down to a single parent.