Reputation: 139
Would it ever make sense to construct an application which uses two different methods of storing data within the application? It's probably easiest to clarify what I'm getting at with an example:
Say that I'm running an online bookstore, and need to keep track of books, customers, orders, etc. My natural instinct here is to use a relational database to hold this kind of information. Now, let's say that when my customers have an account with me, they can configure their homepage in various ways. For example, suppose there is a clock widget which can have different types (analog/digital), colors, and can be positioned any place on the page (or not shown at all). We want to store this information so that when the customer logs in the widget is the correct type, color, and in the correct position. Maybe there are multiple widgets which the customer may or may not use, each with their own attributes. The customer-specific attributes need to be flexible in other words. My instinct on this kind of thing would be to store this information in another format like XML, although I haven't needed to use XML in any projects thus far. It also seems to me that something like MongoDB might make sense for holding this type of info, but I really don't know enough about it to make an intelligent judgement.
Does it make sense to separate out this kind of information or should the relational DB be abstracted to hold this type of information? I'm sure there is no right answer here, but your insights would be appreciated.
Upvotes: 0
Views: 73
Reputation: 1273
Most definitely, I, for example, developed a Ruby on Rails social application that used both Couchbase (NoSQL Document Database) and Neo4J (NoSQL Graph Database) together in a powerful combination, Couchbase for the bulk of data, including real-time chat and commenting (twitter like stream), and Neo4J had some duplication of data, but was primarily used for content discovery through the social network (graph).
In terms of performance, consistency and scalability Couchbase is the leader, and has many examples of high volume and scalable applications that depend on it. Couchbase and MongoDB store data as JSON, but you can also store objects that are serialized. If you are using XML, conversion to JSON and back is a snap.
Upvotes: 1