Категорически против. Никогда не тратьте время на предварительное проектирование: в определенный момент разработка встает колом по причине "недостаточно проработанной архитектуры системы". Код должен сам говорить, где хорошо, а где плохо. TDD вам в руки. ;-)
зато PDO позволяет малой кровью перейти, например, с PostgreSQL на MySQL. К тому же мне особо импонирует возможность параметризованных запросов (SELECT * FROM t1 WHERE foo = ?), чего нет в нативном mysql_*, и, как следствие, голова не болит о http request parameters escaping.
Есть такое понятие, как синоним тега. Например теги "web2.0", "web 2.0", "веб-2.0" являются синонимами. Право определения "синонимности" тегов принадлежит админу либо доверенному лицу (модератору). При появлении схожих тегов админ должен выбрать базовый тег и привязать к нему ряд синонимов, причем система может значительно автоматизировать эту неблагодарную работу. По мере роста базы синонимов, полезность облака тегов повышается. Мы реализовали такую систему еще в 2005 и какое-то время система вела себя очень хорошо.
Никогда не тратьте время на предварительное проектирование: в определенный момент разработка встает колом по причине "недостаточно проработанной архитектуры системы". Код должен сам говорить, где хорошо, а где плохо. TDD вам в руки. ;-)