Data modeling for our application
Since our data is unified and should be visible in an accurate manner to every administrator across the world, we are going to store our polls in the following manner:
{ "Question" : "Which is best phone?", "polls" : [ { "option" : "iPhone", vote : 0 }, { "option" : "Android", vote : 0 } ] }
As you are aware, in RethinkDB we store documents (JSON for geeks) and for our application we are going to store data in the former manner.
Each poll created by admin will be stored in RethinkDB and on each vote, we will update the vote
field of our specific document, which in turn will be broadcast to every connected client to reflect the change.
Although there is no restriction on us to perform mandatory data modeling, NoSQL databases provide us the power to have schema less design. This data modeling is just for representation and explanation purposes.
Let's move ahead...