the social net site i'm working on is slowly getting there. my friend richard has done a total redesign of the underlying (4th normalised form) database. it's a _truly_ object-orientated database - totally abusing postgresql to have complete flexibility over data. i dread to think what kinds of search queries will find horrendous bugs in postgresql.
i've done a sparse-array -> 2d-array query before now, for demographic searches, using mysql, and mysql completely xxxxed up. in order to do the search correctly, i had to ask the customer to apply boolean logic to their searches, so that instead of NOT a AND NOT b AND NOT c they do NOT (a or b or c).
the customer was naturally totally unimpressed.
4th normalised form means that you have an entry with pretty much nothing but an ID and a "type" field, then you have to do a sequence of JOINs attributes AS attributes_table_NNN to add more and more attributes - effectively constructing the rows of the table dynamically.
here's the bit where mysql went wrong, when i also did SELECT where attributes_table_1.value == 'hello' AND attributes_table_2.value == 5 etc. etc. mysql returned completely the wrong results.
i have more faith in postgresql.
once we've got this code underway, and are happy with it, i think it should be a pretty easy task to convince richard to free-software-license it. it's _really_ useful code if you're into object-orientated insane levels of flexibility.
it's not in the slightest bit obvious that there's a database underneath it.
i continue to be impressed with mod_python+formencode+htmltmpl. i think i will try simpletal because i really could do with the benefits of the tags being "buried" into the html rather than huuuge words TMPL_XXX - but, butbutbut... simpletal had _better_ have compiled-templates, otherwise it's out the door even before it's begun.