Схема, которую я представляю, состоит в том, чтобы иметь таблицу сообщений и таблицу истории. Когда кто-то впервые делает свое первоначальное сообщение, оно попадает только в таблицу сообщений. Затем, если они или другой пользователь позднее редактируют сообщение, в таблицу «История» вносятся две записи: одна для исходной версии и вторая для отредактированной версии. Кроме того, таблица сообщений будет обновляться с учетом последней информации. Дополнительные изменения приведут к появлению одной новой записи в таблице истории и обновлению таблицы сообщений.
Единственная проблема, которую я вижу, заключается в том, что текущая версия в конечном итоге дублируется в обеих таблицах, но я думаю, что легкость привязки пользователей к их изменениям оправдывает это.