Самый простой способ сделать это, вероятно, - сохранить объект в состоянии просмотра при первой загрузке страницы, заставить пользователя манипулировать этим, а затем сохранить его обратно в базу данных, когда пользователь захочет его сохранить.
Однако одна из проблем этого подхода заключается в том, что если несколько пользователей одновременно редактируют один и тот же элемент, вы можете столкнуться с ситуацией, когда данные перезаписываются.
Например.
1) Пользователь A загружает страницу и начинает вносить изменения
2) Пользователь B загружает страницу и начинает вносить изменения
3) Пользователь A нажимает сохранить. Изменения сохраняются в базе данных
4) Пользователь B нажимает сохранить. Изменения сохраняются в базе данных, перезаписывая изменения пользователя A.
Вы могли бы обойти это, используя временную метку, чтобы сохранить дату и время последнего обновления, и сравнив ее с той, что была в состоянии просмотра, перед фиксацией udpate. Кроме того, вы можете заблокировать элемент, когда кто-то начинает его редактировать, не позволяя двум людям вносить изменения одновременно, хотя это решение, вероятно, менее надежно (например, что происходит, если пользователь просматривает страницу во время редактирования). *