Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Agree that how you plan to project the data is certainly important (SQL offers immense flexibility, assuming you're heavily normalized). But still, the point stands that you can use some document stores relationally. This makes this point a little duller.

Also, document stores' migration tools are the supported languages themselves... The only migration tool you need is a function from one document to another. RethinkDB actually supports almost arbitrary function input. Also, migrations are a little less important when it comes to document stores because a lot of the schema validation logic gets moved up one level (to the middle layer).

I strongly disagree about which one to start with. One of the biggest widely-noted benefits of a document store is that you don't have to think of your schema up front, you don't have to maintain constantly changing schema declarations, etc. Did you mix up the terms them by accident?

If you didn't mix them up, here's a concrete example of why document stores are often better to start with:

- I'm writing a chat service

- I am thinking about the message model, and decide a message has three fields, a message, sender, and timestamp.

- Three minutes later, while building the service, I realize that I also want to track the origin of the message (through some geolocation service or something), or the locale.

If I had used a relational database, I'd have to edit the schema, re-up/re-migrate the database, etc, when in a document store, I could just go on using it like the locale was there (and maybe add one line of code adding some default/null value for locale if it wasn't on objects I read from the database)



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: