Храни вместе с редактируемым текстом порядковый номер сохранения. Когда пользователь открывает текст на изменение, в форму через hidden поле вставляется порядковый номер сохранения, который был на момент открытия страницы с формой редактирования. При сохранении серверный скрипт сравнивает порядковый номер сохранения в тексте и который в базе. Если они совпадают - значит никто этот текст не успел изменить, иначе - мы должны каким-то образом вывести пользователю новый текст и текст, который он пытается сохранить, чтобы он, возможно, подредактировал один из них и сохранил. Это самый простой вариант. Более сложный - это когда при изменении документа старый вариант сохраняется, при этом сохраняется кто и когда редактировал, таким образом получается что у документа может быть множество версий и можно делать "откат".
P.S. Все операции типа проверки порядкового номера и сохранения делай либо через транзакции, либо с блокировкой таблиц(ы), чтобы избежать возможных коллизий.
|