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
------------------------------------------------------------------------
_______________________________________________
New York PHP Users Group Community Talk Mailing List
http://lists.nyphp.org/mailman/listinfo/talk
http://www.nyphp.org/Show-Participation