Reputation: 5918
I need to write a media application which stores movie/tv shows preferences/favorites for each user.I need help in deciding whenever to user a NoSql or not.
The application will have a huge database of movies/tv shows metadata, similar to imdb.com, rottentomattoes etc. This data is read-only for the user, only admins are expected to edit the movies content. I also plan to expose this data through odata.
My gut tells me that i should use NoSql for at least storing the media data, but I'm afraid that i will lose a lot of development productivity tools (Entity Framework, designers.. etc).
I am also worried about NoSql and data duplication (e.g each movie has a list of genre which would be duplicated in each k/v or document (depends on which nosql db i choose))
My next feature would be to provide an autocomplete of movie titles so i need to keep that in mind too.
Has anyone done something similar with this? Are my worries correct?
Upvotes: 1
Views: 2073
Reputation: 21
While working on web-application that would require a rich personalized experience (as above), you need to think about what kind of data you would be serving to your customers and what would it take to provide them the experience they expect from your app (for example movie recommendation based on their taste, watch history, behavior etc).
Most of the data that you would be dealing with (user profile, what movie are watched, at what time, day of the week, for how long before it was paused) is going to be very simple (and semi-structured) data, and you would need a very fast indexed lookup and capturing ability from your database that is reliable, highly scalable, easy to work with (from development/admin point of view).
And NoSQL Database fits very well with the above requirement list as they are designed to provide you very high throughput, at very low latency (under 10ms), which can be scaled out horizontally giving you best 'Operation Per Second'/$.
We have in-fact built a working prototype for exactly the same use-case (movie-app) and presented a hands-on-lab during Oracle Open World 2012. Some of the technologies we used for our solution are:
Oracle NoSQL Database (http://www.oracle.com/technetwork/products/nosqldb/overview/index.html)
Oracle Advanced Analytics (For recommendations)
Hadoop
Let me know if you would like to learn more about our solution and I will be more than happy to share it with you.
Thanks Anuj
Upvotes: 2
Reputation: 2736
We have a solution to export mongodb to odata http://jaydata.org/blog/install-your-own-odata-server-with-nodejs-and-mongodb (I work for this company, it is free and opensource)
Upvotes: 0