Схема БД для хранения истории редактирования - PullRequest
1 голос
/ 11 сентября 2010

Я разрабатываю систему, которая будет включать историю изменений, внесенных в сообщения пользователя. Я ожидаю, что примерно 1/3 постов, сделанных моими пользователями, будет содержать какие-либо изменения. Большинство из них будет иметь только несколько версий. Достижение двойных цифр будет очень редким.

Какова лучшая схема для представления этих данных в базе данных? Какие таблицы я должен иметь и что хранить?

1 Ответ

3 голосов
/ 11 сентября 2010

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

Единственная проблема, которую я вижу, заключается в том, что текущая версия в конечном итоге дублируется в обеих таблицах, но я думаю, что легкость привязки пользователей к их изменениям оправдывает это.

...