Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I don't think security would be any different on a NoSQL database than on a relational database. In the end, security is an orthogonal question to how data is actually stored. Besides, it's not like you'd allow access to the database from anything but your business-layer servers from a networking standpoint.</p> <p>As for backups, most NoSQL databases that I know of allow for hot backups, just like a regular database does.</p> <p>The real question, IMO, is whether you can live with the restrictions that a NoSQL database puts on you - in particular, the general lack of ad-hoc queries. For example, if you ever wanted to know all of the people who ever bought product "X" then you'd have to build into your data access layer a counter for that from day one (or run a <em>very expensive</em> serial lookup of every past transaction). In a regular SQL database, you can just add an index and do a query and you're done (or even, don't add an index if it's a one-off). Or maybe you want to find out all the people who bought product "Y" before the latest version came out (so you can send them a reminder to upgrade or whatever): again, you have to plan that ahead with a NoSQL database, but it's trivial with a relational database.</p> <p>I think it makes sense when you can plan your schema and your usage pattern ahead of time, and where the occasional re-scan of records to add some new field or metric is acceptable. But for an e-commerce website, I think ad-hoc queries are just too valuable a feature to lose. Of course, that's just my opinion, and there's certainly no reason why you couldn't mix-n-match parts of the application between the two databases. I'd <em>personally</em> choose a relational database with memcached in between for added performance, though...</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload