Book Image

Learning Couchbase

By : Henry Potsangbam
Book Image

Learning Couchbase

By: Henry Potsangbam

Overview of this book

This book achieves its goal by taking up an end-to-end development structure, right from understanding NOSQL document design to implementing full fledged eCommerce application design using Couchbase as a backend. Starting with the architecture of Couchbase to get you up and running, this book quickly takes you through designing a NoSQL document and implementing highly scalable applications using Java API. You will then be introduced to document design and get to know the various ways to administer Couchbase. Followed by this, learn to store documents using bucket. Moving on, you will then learn to store, retrieve and delete documents using smart client base on Java API. You will then retrieve documents using SQL like syntax call N1QL. Next, you will learn how to write map reduce base views. Finally, you will configure XDCR for disaster recovery and implement an eCommerce application using Couchbase.
Table of Contents (12 chapters)
Index

Document relationships


In a document-based database system, such as Couchbase, you don't need to worry about altering tables when there are changes in the schema, as we usually have to do in RDBMS. All schemas of a document are driven by application code only. Whenever there is a need to change schema, we don't need to worry much, as schema of a document goes along with the document itself as metadata. We don't need to change any schema explicitly at the bucket level. We just need to think about the latency, update, and read pattern of documents in terms of dataflow while designing document. We will be more concerned about data flow than data storage. However, my experience leads me to feel, that if you can design a document as a standalone entity, that's the best thing.

We have seen two ways of designing documents: one that includes all related information in one document and others splitting information into multiple documents. If we have to choose the second option, there should be a way...