Normalizing read models
In SQL relational databases, normalization makes perfect sense and should be implemented by creating a table for each entity. Additionally, we can have separate tables for all of the children's objects and use foreign key identity to map the relationship between those entities.
In a document database, this can be a detriment to performance and bad design, but there are some cases when we need to normalize document database models. The best practice is to embed everything within the parent entity; however, in the case where the embedded objects can grow without bounds, this can create an issue with document size. Therefore, in this scenario, we need to model our data with a reference just as we do in a relational world using identities.
Another example of the correct time to normalize a document model is when dealing with subordinate objects that change frequently. For example, we have a parent document called the customer, the customer has a list...