NYCPHP Meetup

NYPHP.org

[nycphp-talk] MongoDB and others, convince me. :-)

Gary Mort garyamort at gmail.com
Fri Dec 4 07:56:07 EST 2009


Ok, so since someone has been singing the praises of MongoDB, and others
have been mentioned, I figured I'd provide a contrarian view and see if you
can convince me otherwise.

I'm a big fan of relational databases.  Have been using them since I
graduated from college in 1993, starting with DB2, followed with MySQL[and
boy was THAT interesting.  DB2 was always like 2 years behind all the neat
features in other relational databases.  Then I went to MySQL and not only
did it lack those features, it lacked a lot of what solid, dependable DB2
had!  And it was on purpose!  They deliberately choose to keep MySQL lean
and mean and avoid things like foreign keys, stored procedures, and such.]

My experience is that almost any application can be broken up and thought of
as tables.  Especially in the business world, people naturally think in
terms of spreadsheets since the spreadsheet is king there.  And a
spreadsheet is nothing but a table.

And by putting everything in well documented[ha ha!] tables with consistent
column and table naming schemes, even power users can use query tools such
as Navicat to build their own queries and reports easily.   So by keeping
everything in a well understood industry standard format, we lower the skill
level needed to access and create reports on the underlying data - always a
good thing since I personally hate it when someone asks me to create a
report on sales from last year "just like this other one except we need to
include wholesale prices",  There is no challenge there, no fun.  Just pure
grunt work.

So all this talk of moving away from SQL makes me nervous.  Will cluefull
users still be able to envision the data so they can pull reports.  Heck,
are there even the user friendly point and click tools for them to do
so?[Personally I never use the query builder in Navicat and find it tedious,
but I know plenty of power users who CAN do that].

To me, it looks like migrating to this new method of storing data will end
up "locking" the business data up in a format that raises the cost to access
the data.  It reminds me of the way Magentoo is designed, with those oh so
cool tables for storing field values without creating new table fields.
Sure, it may make it easier to expand/change the system, but having to do
multiple joins to the same dang table to get different pieces of data makes
the data harder to get to for non programmers!

My feeling on business data is that business data belongs TO the business
creating it.  Not to some programmer who is the only one who can access
it[or worse, to some company that stores it in a proprietary format and
won't allow the data to be exported!] - so at the moment, I'm not seeing
that sort of access for data in MongoDB.   Command line pseodo queries is
not enough, I want to know the data is easy to get out for a power user -
not me.

-- 
----
Hudson Valley Sudbury School
What GPL is for application users
Our school is for students
Help your children grow, change, and learn
Let your child direct, control, amend
Check out http://www.sudburyschool.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nyphp.org/pipermail/talk/attachments/20091204/a8042b0f/attachment.html>


More information about the talk mailing list