>1. Язык движка. Самое очевидное, конечно, PHP, но вдруг у кого-то на эту тему есть мысли?
Мне кажется, пока надо писать на PHP, а там будет видно. Кто-то уже высказывал мысль, что при большом желании всё можно и переписать, сделав разные варианты. Но на сегодняшний день, если учитывать цели, PHP мне кажется наиболее адекватным вариантом.
>2. Структура БД. Варианты:>2.1. Классический формат нынчешних форумов - "всё в одной таблице".>2.2. Каждая таблица примитивная - идентификатор ресурса и данные.
А я считаю, что надо совмещать эти подходы. Например, в том же PhpBB (в отличие от IPB) текст постинга хранится отдельно от таблицы остальных параметров постинга. Мысли (дилетантские, ибо не имел дела с подобными проектами - в плане объёма БД и расширяемости) у меня такие.
1. Если каждое данное хранится отдельно, придётся делать слишком большое количество отдельных запросов к БД. Зачем тогда нужна СУБД? Может, тогда уж и альтернативную СУБД написать? Поэтому то, разделять что нет причин (перечисляемых ниже), следует объединять в одной таблице.
2. Если какое-то поле является типичным полем данных переменной длины (типа TEXT, BLOB etc.), его логично выносить в отдельную таблицу, чтобы не мешалось при поиске по остальным полям.
3. Если разные группы полей имеют разные области применения (проще говоря, обычно выводятся на разных страницах), мне кажется логичным для наших целей разносить их по разным таблицам.
4. Большинство модулей (и уж точно все написанные "сторонними разработчиками") должно быть независимы. И основные таблицы должны изначально продумываться с учётом расширяемости.
Если попытаться принять этот вариант, то это большая работа на стадии планирования структуры БД. И надо бы действительно проводить исследования, ибо критична скорость.
А если говорить о структуре БД в разных форумах, то когда я сравнивал бесплатные, самой красивой (т.е. логичной) мне показалась структура БД PhpBB. А вот в некоторых деталях структуры БД IPB я не смог разобраться, пока сам его не поставил.
>3. Требуется ли хранить исходник сообщения. Нынешний язык разметки слишком сложен для адекватной декомпиляции. Хотя этот вопрос можно сделать опциональным.
Полностью согласен. Точнее, можно сделать не совсем так. Мы предлагаем два варианта (для выбора меньшего из зол). Первый - с "удвоенным" объёмом БД. Второй - с урезанными возможностями языка разметки, который допускает адекватную декомпиляцию. А дальше пусть админ выбирает.
>4. Делать ли форум совершенно автономным или же вместе с CMS?
Вот по этому вопросу у меня пока мнения нет.

Возможно, имеет смысл широко поспрашивать владельцев сайтов / форумов.