On Mon, 5 Jan 2015 11:37:37 -0500 xu xiut <xiut.xu@xxxxxxxxx> wrote: > Hello, I am looking at creating a toy project which may turn into an actual > business if I'm lucky, the ideal is generally just an exchange for people > to trade some type of asset. > > I'm looking at using either PostgreSQL or Riak, and I'm wondering if there > are opinions and suggestions that someone would be willing to share with me > when evaluating databases. > > This is the first time I've actually considered something besides > PostgreSQL. Riak 2.0 now offers strong consistency and I really respect the > community and the work that has gone into the project. It seems like it > would be easy to replicate across multiple data centers. The big difference between an RDBMS like Postgres and a document store like Riak is data consistency. I'm talking about something completely different than the "strong consistency" promise they are now making. It's very easy to explain: Can you make foriegn keys in Riak? Check constraints? Data type constraints (such as ensuring that a particular value is a valid date)? PostgreSQL allows you to do all of these, and a properly designed RDBMS will ensure that your data is always valid ... i.e. no orphaned child records, or invalid dates, or negative numbers where there shouldn't be, etc. With Riak (or any other document store system I'm familiar with) the onus is on the programmers to ensure this. It's certainly possible to write data validation in the program logic to keep the data clean, but it's a lot more work than doing it in the database. Furthermore, in my experience, software developers don't do a good job of it -- but that's dependent on your software team and the QA practices you enforce. Summary: if data quality is important, PostgreSQL is probably the right choice. If you are OK with some poor quality data, and really need the features of Riak, then go that route. -- Bill Moran I need your help to succeed: http://gamesbybill.com -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general