I realize I'm arriving late to the database discussion, but has the use of
an abstraction library been considered? There is a PHP library called
ADODB (
http://php.weblogs.com/ADODB/) that is used by PostNuke and others.
I've personally used it on smaller projects very successfully. It's
modeled after Microsoft's [[ADO]] library that performs a similar function
(as I understand). An abstraction layer like this gives you the
flexibility to use whatever database backend you want.
Description from
Freshmeat.net:
"ADODB is a set of advanced PHP database abstraction classes. It supports
MySQL, PostgreSQL, Interbase/Firebird, Informix, Sybase SQL Anywhere,
Oracle, MS SQL 7, Sybase, DB2, FrontBase, Foxpro, Access, ADO, and generic
ODBC. A metatype system is built in, making it possible to figure out that
types such as CHAR, TEXT, and STRING are equivalent in different
databases. It also features an SQL to HTML popup menu and SQL to HTML
table support. It has code to support record paging and blob/clob
support."
Of course nothing is ever free, so I suspect there could be a slight price
to pay in terms of performance. I don't know enough about ADODB to say
what the performance costs are, nor could I find any discussion on their
site. However, I suspect that the cost of an extra PHP function call or
two is small compared to the overall cost of performing the SQL query.
Anyway, it's just a suggestion. Others more knowledgeable about Wikipedia's
current implementation and requirements are probably better judges of
whether or not this could be useful.
Steve Rawlinson