I'm new to DynamoDB and have only worked with relational databases before. I have a collection of recipes, each with its own set of ingredients and cooking steps. The cooking steps include various media such as text, images, and videos for presenting the recipe nicely. Some videos might be shared across multiple recipes (like a tutorial for chopping onions). I'm looking to understand if a single table design with DynamoDB is suitable for my app, particularly for these queries: getting a list of recipes (with their names, authors, and creation dates), retrieving ingredients for a specific recipe, and accessing the list of cooking steps along with their components. Would this work well in DynamoDB?
3 Answers
Honestly, if you're not completely sold on using DynamoDB yet, I’d suggest sticking with a relational database. It’ll save you a headache down the line when you encounter unexpected scenarios that can be tricky to manage in a NoSQL setup like DynamoDB.
Why not give it a try? You’ll get a better grasp of how it functions through experimentation. There are also some solid libraries out there to help you with single table designs. However, if you're looking for an easier route, a good old SQL database might be your best bet for now.
If you’re aware of all your access patterns upfront (which seems like you are), then going with a single table design in DynamoDB could actually work. That said, I’ve had rough experiences too with poorly designed tables in DynamoDB, so just be cautious with your design choices.
Exactly! It's all about how you structure your table and queries. Just make sure to plan out everything.

I second that! If you think your access patterns might change or if you expect future complexity, relational databases handle those situations with ease.