Visual DynamoDB Design and Documentation with DbSchema
Amazon DynamoDB is fast and scalable, but designing and managing its structure can be challenging - especially when you can’t see the schema visually. DbSchema brings a new perspective: you can design DynamoDB visually, edit data directly, and even generate HTML5 documentation or work in teams using Git.

Reverse Engineer or Design Your DynamoDB Structure
Connect DbSchema to your AWS DynamoDB account, and it automatically reads your existing tables, showing them as clear diagrams with key icons and attribute types. You can also start from scratch, creating new tables visually without writing any JSON.
Here’s an example database for a small online shop:
Table | Primary Key | Description |
---|---|---|
Users | UserId (String) | Stores user information |
Products | ProductId (String) | Product catalog |
Orders | OrderId (String) | Customer orders |
OrderItems | OrderId + ProductId (Composite) | Items inside each order |
Reviews | ReviewId (String) | Customer feedback for products |
Tip: In DynamoDB, the primary key must always be defined first. Only after that can you add other attributes or nested JSON fields.
Creating Tables in DbSchema
In DbSchema’s diagram, you can right-click and create a new table visually - no JSON required. For example:
Attribute | Type | Key Type |
---|---|---|
UserId | VARCHAR | Partition Key |
Name | JSON | - |
Age | JSON | - |

Once the UserId key is defined, DbSchema lets you add the rest automatically. You can also adjust names, reorder columns, or edit data types from the GUI.
Insert Data
DbSchema lets you add data directly in the Data Explorer.

You can also use SQL-like commands - even though DynamoDB itself uses JSON. For example:
INSERT INTO Users VALUE {'UserId': 'u123a', 'Name': 'Alice', 'Age': 30}
INSERT INTO Users VALUE {'UserId': 'u124b', 'Name': 'John', 'Age': 25}
INSERT INTO Products VALUE {'ProductId': 'p101', 'Product': 'Wireless Mouse', 'Price': 29.99}
INSERT INTO Products VALUE {'ProductId': 'p102', 'Product': 'Mechanical Keyboard', 'Price': 79.50}
Visual Relationships Using Virtual Foreign Keys
In DynamoDB, there are no real foreign keys, since the database is schema-less and doesn’t enforce relationships. However, in DbSchema, you can create virtual foreign keys to visualize logical connections between tables, just like you would in a relational model.
These virtual lines help you and your team understand how data is related, even if DynamoDB doesn’t enforce it.

For example, in our e-commerce design:
- Orders.UserId → Users.UserId Each order belongs to a specific user.
- OrderItems.OrderId → Orders.OrderId Each order item links back to its order.
How to Create a Virtual Foreign Key in DbSchema
- Open your diagram containing the DynamoDB tables.
- Hover over the column name in one table (for example,
Orders.UserId
). - Click and drag the small key icon onto the matching column in another table (
Users.UserId
). - Release the mouse button - DbSchema will draw a relationship line between the two tables.
- Optionally, right-click the line to set cardinality (one-to-many, etc.) or to rename the virtual key.
These virtual links do not affect your DynamoDB data, but they make your schema easier to read and document.
Generate Interactive HTML5 Documentation
Once your design is ready, DbSchema can export your entire DynamoDB structure as interactive HTML5 documentation.

This documentation includes:
- Table diagrams with attributes and key icons
- Tooltips and descriptions for each field
- Navigation between tables and attributes
You can publish the documentation on your internal wiki or share it with your team - no installation required. It’s a great way to keep your DynamoDB structure always up to date and easy to understand.
Collaborate Using Git
When your project is saved as a .dbs
model file, DbSchema can store it in a Git repository.

This allows you to:
- Track changes in your DynamoDB schema
- Merge updates from multiple team members
- Roll back to previous versions when needed
It’s ideal for teams that design or test DynamoDB schemas together, maintaining a full version history and avoiding conflicts.
Why Use DbSchema with DynamoDB
- Reverse engineer existing tables
- Visually design new structures
- Insert and modify data easily
- Generate HTML5 documentation
- Work in teams using Git integration
DbSchema turns DynamoDB into a visual, collaborative, and well-documented environment - all without touching raw JSON.
Try DbSchema for free and explore your DynamoDB visually. Download DbSchema