My feeling is that the field of NoSQL was created EXACTLY so the data should not be normalized like in relational databases--which has the disadvantages that data needed for real time/online applications needed to be joined at runtime before being used by the application. Under the time constraints of an online system, this is unacceptable. Hence, application developers want to store persistently the data EXACTLY in the way application see it: pre-aggregated, potentially inconsistent, and potentially replicated. Bottom line, there is no "rule" of how you should store the data. Just look at your application needs. Not everyone has the same requirements as iTunes or Netflix, so you don't need to copy their design.With consistency gone, whatever is left?
If this is a question for you... maybe you shouldn't be using a NoSQL database in the first place !? Why do you think you need one and good old relational databases aren't good for you? Just because it's "fashionable" ? My point is: if you knew exactly WHY you need a NoSQL database, you knew EXACTLY how to structure your data for it.
2. To Laugh or Cry?
3. Online Debunkings
- What's the Harm In a Default Setting For Div By Zero
- Enterprise financials in the cloud: Why the fog of skepticism may be lifting
- Extending the relational algebra to capture less meaning (h/t Erwin Smout)
- Thinking for Programmers (h/t William Sisson)