In this chapter, we're going to take a step back from how to program for a Couchbase database, and instead focus on design considerations for a Couchbase application. We touched on a few of the important design ideas in the previous chapters, but we'll now explore keys and documents in greater detail.
There is no right way to design a document-based application. This notion differs significantly from relational application design. If you're an experienced developer of RDBMS-based systems, you've likely undergone the process of converting a logical model to a highly normalized database design. NoSQL design is very different.
Proper document design is tightly coupled with both your logical model and your application use cases. Moreover, use-case-based document design will vary among document databases. Designing your Couchbase documents is not necessarily the same as designing your MongoDB documents.
Since Couchbase is a hybrid data store, we'll need...