Items, not rows
Two items in one table can have completely different attributes.
Why
A DynamoDB item is a bag of typed attributes, not a row in a fixed set of columns. The only attribute every item must have is the primary key.
Read the book, then the lamp. They live in the same table and share nothing but their id. Each attribute carries its type with it: S for a string, N for a number, BOOL for a boolean, SS for a string set.
Only the key is fixed. Every other attribute is decided item by item.
Try it. Then change it.
Predict what each request will do. Run it, inspect the response, then change a value in the workbench and try again.
A book: it has a title, pages, and a set of tags.
A lamp, from the same table: different attributes entirely, and a boolean.
A book: it has a title, pages, and a set of tags.
Choose an access pattern above, or build your own request. See what comes back and what it costs.