LINUXTALKS.CO

История изменений

Исправление cvs-255, (текущая версия) :

Например это может быть организовано так:

  1. таблица с полями id:текст:версия - в нее можно только добавлять новое
  2. таблица с полями id:[<список версий>]

Таблица 2 строится на основе таблицы 1, т.е. восстанавливаемая, и в нее можно и нужно делать UPDATE.

Когда добавляется новое сообщение, то ему присваивается версия 0, и автоматом в таблице 2 создается запись с id:[0]

Когда сообщение исправляется, то сперва смотрим в таблицу 2 и берем максимальную версию из списка. Делаем insert в таблицу 1 с версией увеличенной на 1 и записываем новую версию в список версий в таблице 2: id:[0,1]

Таким образом от ошибок кода самого сервера, который может потереть сообщения, защитит отсутствие UPDATE или DELETE в коде в отношении таблицы 1, а от ошибок самого SQL сервера защитит наличие резервного SQL сервера, куда параллельно все будет писаться

Исходная версия cvs-255, :

Например это может быть организовано так:

  1. таблица с полями id:текст:версия - в нее можно только добавлять новое
  2. таблица с полями id:[<список версий>]

Таблица 2 строится на основе таблицы 1, т.е. восстанавливаемая, и в нее можно и нужно делать UPDATE.

Когда добавляется новое сообщение, то ему присваивается версия 0, и автоматом в таблице 2 создается запись с id:[0]

Когда сообщение исправляется, то сперва смотрим в таблицу 2 и берем максимальную версию из списка. Делаем insert в таблицу 1 с версией увеличенной на 1 и записываем новую версию в список версий в таблице 2: id:[0,1]