August 2010 - Posts

Nice to meet you, Raven!

Actually, this is blessing when I met a new project which produce simple (really simple, but yet huge) application in web page by using another approach in how we present data in the application.

Sometimes, we stuck in how we design a relational database to decide how many tables should we have to created. And sometimes, in the beginning of the project, creating a prototype sometimes will be different in making the implementations. For example, you can create a prototype by using MongoDB, or some of in-memory or flat database engine, and then after your client agree about your prototype, you switch back to relational database like SQL Server. This approach is common in real complex project situation.

How if we can structured an application without structuring like relational database? If you want to do that, pleas meet RavenDB and you will love it!. This is nice and very interesting indeed. This kind of database engine won't make you switch from relational to un-relational. Just use it, and feel the different taste. In a minute, you will know about the power of it.

Maybe this is one of the kind of your web page design (taken from Raven's documentation):

When you see that mockup, what is in your mind? Yes, you think about how many tables you have to created and how the relationship between them. In a relational database, you would have to touch no less than 4 tables to show the data in this single page (Posts, Comments, Tags, RelatedPosts). Using Raven, you can store all the data that you need to work with as a single document with the following format:

This format allows us to get everything that we need to display the page shown above in a single request. No need to create 4 tables, no need to choose primary key column, foreign key column, and etc. Forget it. Just represent your page in single document, and you can add anything in it. Very flexible and yet powerful in terms of simplicity. Yes, I know this is unstructured. But yet powerful.

I have successfully create one of application for my client using RavenDB. Yes, I know there are some limitation by using it. But actually, this is great and really have fun to use it.

Try it and say ... nice to meet you ... Raven!

Share this post: | | | |
Posted by agung | with no comments
Filed under: