title: MongoDB normalization, foreign key and joining
body: <p>Before I dive really deep into MongoDB for days, I thought I'd ask a pretty basic question as to whether I should dive into it at all or not. I have basically no experience with nosql.</p>
  
  <p>I did read a little about some of the benefits of document databases, and I think for this new application, they will be really great. It is always a hassle to do favourites, comments, etc. for many types of objects (lots of m-to-m relationships) and subclasses - it's kind of a pain to deal with.</p>
  
  <p>I also have a structure that will be a pain to define in SQL because it's extremely nested and translates to a document a lot better than 15 different tables.</p>
  
  <p>But I am confused about a few things. </p>
  
  <ol>
  <li><p>Is it desirable to keep your database normalized still? I really don't want to be updating multiple records. Is that still how people approach the design of the database in MongoDB?</p></li>
  <li><p>What happens when a user favourites a book and this selection is still stored in a user document, but then the book is deleted? How does the relationship get detached without foreign keys? Am I manually responsible for deleting all of the links myself?</p></li>
  <li><p>What happens if a user favourited a book that no longer exists and I query it (some kind of join)? Do I have to do any fault-tolerance here?</p></li>
  </ol>