Добрый день!
Есть задача.
Объект — учетная единица. С ней могут производиться определенные операции, которые отражают изменение местоположение объекта, изменение его характеристик и т.п. Суть операций — знать, что с объектом происходило до текущего момента, то есть всю историю операций.
Пример последовательности операций:
1 мая: объект образовался в пункте А
10 мая: объект переместили из А в Б
12 мая: объект переместили из Б в Г (*)
13 мая: объект прекратил свое существование в пункте Г
Вопрос заключается в том, как быть с историей редактирования операций? Например, пользователь считает, что ошибся, и захотел зайти в прошлую операцию и исправить ее. Но исправление в истории может привести к логическим ошибкам. Пример: в операции (*) он поставил дату 9 мая... Но 9 мая объект был в пункте А, и операция (*) в данном случае не имеет смысла! В итоге, в программу надо закладывать проверки, количество и сложность которых растет вместе с разными видами операций над объектом. Может быть в принципе неверно давать пользователю редактировать историю? Но юзеры утверждают, что могут ошибаться, и им это надо

. У кого есть опыт решения таких задач, прошу поделитесь им!