Привет всем !
Есть база
В ней есть основные документы. У этих основных документов есть документы-ответы (т.е. response). Эти документы-ответы могут меняться из основного документа как из встроенного представления так и через различные действия (события, кнопки и все такое).
Вот нужен механизм транзакций. После долгих раздумий было решено сделать так:
1) По кнопке (например, редактирования) основного документа создать локальную базу, в ней представление и скопировать туда ответы.
2) Произвести изменения ответов (удаление, создание, редактирование)
3) Если изменения подтверждены, то удалить ответы в локальной базе и скопировать из основной базы все ответы.
4) Если изменения отменены,то удалить ответы в основной базе и скопировать ответы из локальной базы.
5) При закрытии (выхода из редактирования) документа удалить все ответы из локальной базы.
6) Саму локальную базу не удалять, т.к. один и тот же пользователь может работать с несколькими основными документами (а разные пользователи с одним и тем же основным документом не могут).
Меня интересует, кто делал подобный механизм. И как его делал? На мой взгляд, это лучшее, что можно придумать. Или есть лучше ?
Какие подводные камни могут быть ?
Есть база
В ней есть основные документы. У этих основных документов есть документы-ответы (т.е. response). Эти документы-ответы могут меняться из основного документа как из встроенного представления так и через различные действия (события, кнопки и все такое).
Вот нужен механизм транзакций. После долгих раздумий было решено сделать так:
1) По кнопке (например, редактирования) основного документа создать локальную базу, в ней представление и скопировать туда ответы.
2) Произвести изменения ответов (удаление, создание, редактирование)
3) Если изменения подтверждены, то удалить ответы в локальной базе и скопировать из основной базы все ответы.
4) Если изменения отменены,то удалить ответы в основной базе и скопировать ответы из локальной базы.
5) При закрытии (выхода из редактирования) документа удалить все ответы из локальной базы.
6) Саму локальную базу не удалять, т.к. один и тот же пользователь может работать с несколькими основными документами (а разные пользователи с одним и тем же основным документом не могут).
Меня интересует, кто делал подобный механизм. И как его делал? На мой взгляд, это лучшее, что можно придумать. Или есть лучше ?
Какие подводные камни могут быть ?