Это не вопрос из серии кодинга, вообще-то.
Я свою БД строил на том, что текстовые модули лежат все отдельно в одной таблице(id, date, author, text).
А уже на неё ссылался отовсюду.
Топик форума? Отдельная таблица для топиков, отдельная таблица для связи топиков с модулями.
Личка? Отдельная таблица(id, date, sender, recipient, subject, text_id). Если нужна поддержка дискусий в привате - дополнительная таблица связки.
Нужно хранить нетекстовое содержимое? Текстовый модуль забивается JSON'ом со ссылками на это самое нетекстовое содержимое и инструкциями "как рисовать".