The main difference in the design approaches for SQL and NoSQL respectively is that in the former case, you are looking through the lens of entities and relationships (mostly with the goal of minimizing data duplication); in the latter, your primary concern is query efficiency, in other words, answering the question: "How do I store the data in such a way that all the data needs of my users are met with querying a single record in the database, for a highest possible number of user queries?"
(Often, but not always, this latter design concern is best answered by relaxing the requirement for the minimal data duplication within the data store, as well as allowing for eventual, rather that strict, data consistency.)
Note that your question speaks only to entities and relationships, not user query patterns. So all of the information you give is pertinent to an SQL design, and almost none of it, for a NoSQL one.
Answer from Alex Chadyuk on Stack OverflowI'm starting a serverless project, and with that I'm learning dynamodb. My only previous database experience is with relational databases, so dynamo is a big paradigm shift.
I've read lots of articles about it, mostly focusing on how to build a single table or transitioning a single relation to dynamo. I've also read through AWS's best practices page in their developer guide. Their post focuses a bit more on an entire enterprise-worth of database storage, which is helpful, but because it's so different than relational databases, I'm nervous to get started.
What are your thoughts on dynamodb? What have you learned from building an enterprise-size database? Do you put EVERYTHING into one table like the docs frequently mention? (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-modeling-nosql-B.html)