There recently are two threads on this list: Table restructuring and Postgres. Which made me thinking: Why not use the opportunity to support both?
Here's the plan (V0.1alpha): * A new table (or two) for the database, storing the proposed "essentials" * No changing of the cur/old tables due to speed concerns * Creation of a high-level database wrapper class
My vision (random thought, actually;-) is this: No SQL statements *at all* in the PHP, except for the database wrapper. Advantages: * Use of all the goodies (simple PHP code, simple identification of any article version etc.) * Easy switching to postgres/sqlite/whatever
So the wrapper will present a "universal" database, and do all the ugly work. I'd imagine "DBmysql", "DBpostgres", etc. as classes. That will not only make the wiki-part of the script more flexible (imagine an intranet installation running sqlite - only apache and PHP needed!), it will also make debugging and future extension easier.
One downside, though: major refactoring...
Magnus
wikitech-l@lists.wikimedia.org